[vim] Vim-vim을 시작할 때 즉시 명령을 실행하는 방법은 무엇입니까?

:FindFileCache .빠른 열기를 위해 파일 캐시를 수집하기 위해 vim을 시작할 때마다 실행해야하는 플러그인 (FindFile.vim)이 있습니다. 그래도 vim을 시작할 때마다 이것을 실행해야합니다 .

vim이 시작될 때마다 한 번 실행되는 명령을 어떻게 작성할 수 있습니까?



답변

구성 항목을 보관하는 가장 좋은 위치는 .vimrc
파일입니다. 그러나 너무 일찍 공급되었으므로 :h startup다음을 확인하십시오 .

At startup, Vim checks environment variables and files and sets values
accordingly.  Vim proceeds in this order:

1. Set the 'shell' and 'term' option                *SHELL* *COMSPEC* *TERM*
2. Process the arguments
3. Execute Ex commands, from environment variables and/or files *vimrc* *exrc*
4. Load the plugin scripts.                                 *load-plugins*
5. Set 'shellpipe' and 'shellredir'
6. Set 'updatecount' to zero, if "-n" command argument used
7. Set binary options
8. Perform GUI initializations
9. Read the viminfo file
10. Read the quickfix file
11. Open all windows
12. Execute startup commands

보시다시피 .vimrc 는 플러그인보다 먼저로드됩니다. 입력하면 :FindFileCache .해당 명령이 아직 존재하지 않기 때문에 오류가 발생합니다. (4 단계에서 플러그인이로드되면 존재합니다.)

이를 해결하려면 명령을 직접 실행하는 대신 자동 명령을 생성하십시오. 자동 명령은 이벤트가 발생할 때 일부 명령을 실행합니다. 이 경우 VimEnter 이벤트가 적절 해 보입니다 (에서 :h VimEnter).

                                                    *VimEnter*
VimEnter                    After doing all the startup stuff, including
                            loading .vimrc files, executing the "-c cmd"
                            arguments, creating all windows and loading
                            the buffers in them.

그런 다음 .vimrc에 다음 줄을 넣으십시오 .

autocmd VimEnter * FindFileCache .


답변

vim의 -c 플래그도 있습니다. vim이 수직 분할로 시작되도록 tmuxp 구성에서 이것을 수행합니다.

vim -c "vnew"

적어도 neovim을 사용하면 동시에 파일을 열 수도 있습니다.

nvim -c "colorscheme mustang" some_file


답변

이름이 지정된 파일을 ~/.vim/after/plugin/whatever_name_you_like.vim만들고 다음으로 채 웁니다.

FindFileCache .

vim 디렉토리에서 스크립트를 읽고 실행하는 순서는 다음에 설명되어 있습니다. :help 'runtimepath'


답변

다른 답변보다 늦게 시작하지만 시작 직후에는 .vimrc에서 타이머를 사용하십시오. 예를 들어 .vimrc의이 코드는 변수를 설정하기 전에 시작 후 0.5 초 동안 대기합니다.

function DelayedSetVariables(timer)
    let g:ycm_filetype_blacklist['ignored'] = 1
endfunction
let timer=timer_start(500,'DelayedSetVariables')

(이 예제의 변수는 YouCompleteMe 플러그인의 블랙리스트입니다. 플러그인이 비동기 적으로 다른 프로세스를 시작하여 변수를 생성하지만 vim이 시작될 때까지는 아직 준비되지 않은 것으로 가정합니다. 시도 할 때 변수가 존재하지 않습니다. .vimrc, after 파일 또는 VimEnter 이벤트에서 설정하십시오. 이것은 내 Windows 시스템에 특정한 것입니다. YCM 문서에 따르면 .vimrc가 옵션 설정을 위해 작동해야합니다.)


답변

넣어 FindFileCache당신에 .vimrc.

Autload 명령은 다르며 시나리오에서 작동하지 않습니다.


답변