2013-02-26 2 views
1

가끔씩 유사한 명령을 반복해서 다시 작성하는 일이 지루하기 때문에 모든 명령을 미리 작성하여 하나의 사용자 정의 명령에 저장하고 한 번에 모두 사용하려고합니다. 그러나 내가 사용할 새로운 명령은 현재 사용중인 파일에만 필요하므로 vimrc 파일을 변경하는 것을 원하지 않습니다. 그래서 여기 내 질문입니다, 파일에 명령을 prewrite하고 vim에로드 한 다음 한 번 사용하기 위해 사용할 수 있습니까? 가능한 경우 어떻게해야합니까?Vim에서 미리 작성된 명령 사용 방법

감사합니다. 단지 autocmd에 직접 명령을 넣어, 오히려 파일을 소싱보다

autocmd BufRead,BufNewFile *.whatever source /p/a/t/h 

또는 : 당신의 .vimrc에 autocmd를 사용할 수 있습니다, 또한

:source /p/a/t/h 

:

+0

더 명확하게 말해서, 복수 a [i]와 b [i]에 대해 '% s/a [i]/b [i]/g ' 을 사용하고 싶습니다. 명령 모드에서 한 줄만 입력 할 수 있으므로 명령에서 값을 변경하는 것이 편리하지 않습니다. 나는 다른 파일에서 새로운 명령을 만드는 것이 좋을 것이라고 생각하고 윌리엄처럼 소스를 제안했다. 나는 그것이 최선의 방법이라고 확신하지 못하지만, 현재 내가 생각할 수있는 것은 ... – Chong

답변

5

그냥 파일을 소스 .

+0

또한, 일부 AutoCmd를 설치하여 열어 놓은 파일에 따라 자동으로로드되도록 할 수 있습니다. –

+0

'/ p/a/t/h'을 훔쳐도 될까요? – romainl

2

구체적인 예가 없으면 조언하기가 어렵습니다. 그것은 당신이 이런 식으로 특정 파일 형식에 대한 사용자 지정 명령을 정의하고 싶습니다 같은 소리 :

:command -buffer ComplexSubstitute %substitute/foo/bar/g 

:help user-commands를 참조하십시오. 버퍼 범위는 ~/.vim/ftplugin/<filetype>_commands.vim 정도가되어야합니다. :filetype plugin on을 사용하면 이러한 파일이 자동으로 소싱됩니다. 또는 버퍼 로컬 :map 핑을 거의 동일한 방식으로 정의 할 수 있습니다. 그것은 한 번만 있다면

+0

글쎄, 실제로 파일 형식이 아니라 단일 파일 인 경우 여러 패턴을 다른 패턴으로 변경해야합니다. 일반 모드에서는 "% s/a [i]/b [i]/g"를 여러 번 사용해야하므로 모든 명령을 하나의 명령으로 만들고 한 번에 실행하려고합니다. – Chong

0

음,

  1. 어떤 파일에 한 줄에 명령을 쓰기 자연 (일반) 방법이있다. 작업하고 싶은 다른 파일로 가져올 수 있습니다.
  2. 이 줄에 ^y$ 코드를 홱 잡아 당깁니다. yy 그렇지 않으면 캐리지가 잡아 당길 것입니다.
  3. 명령 줄로 이동하여 :을 입력하고 C-r "을 누르면 명령 줄에 붙여 넣을 수 있습니다. 이익을 내기 위해 <CR>.

조금 번거롭지만 작동합니다. 언젠가는 그럴 겁니다.

1

이전 명령을 빠르게 반복하려면 내 redocommand plugin을 사용해보십시오. 전달 된 패턴이 포함 된 기록에서 마지막 명령을 반복합니다. 예 : 내장 명령으로

:%substitute/foo/bar/g 
" ... some time later ... 
:R %s 

, 당신은 다음 명령 (:%s)을 반복 시작 와 함께하는 마지막 명령을 완료 할 수 있습니다.

+0

좋은 플러그인입니다 ~ 나는 여전히 다른 패턴에 대한 루핑을해야하지만 매번 커맨드를 반복합니다. 하지만 고마워, ~ ~ ~ – Chong

관련 문제