Conclusão do nome do arquivo Vim em relação ao arquivo atual

4

Em Vim , quando estou no modo de inserção, e quero usar a conclusão do nome do arquivo, quero que o caminho de pesquisa seja relativo ao arquivo atual, não o diretório de trabalho atual. Por exemplo, se no modo de inserção eu digitar o seguinte:

./^X^F

O menu de conclusão está me mostrando arquivos no :pwd , mas prefiro ver os arquivos em %:p:h listado.

Existe uma opção que posso definir para corrigir isso e, se não, o que você sugere como solução alternativa?

    
por kzh 05.06.2013 / 19:16

2 respostas

11

Se você

:set autochdir

você terá o comportamento que deseja. No entanto, se você precisar manter o diretório de trabalho (por exemplo, para abrir facilmente outros arquivos de projeto), será necessário salvar / restaurar o CWD com autocmds:

:autocmd InsertEnter * let save_cwd = getcwd() | set autochdir
:autocmd InsertLeave * set noautochdir | execute 'cd' fnameescape(save_cwd)
    
por 05.06.2013 / 21:21
2

@ Ingo Karkat 's answer é legal, mas estou um pouco hesitante em colocar isso em meu vimrc , porque Até mesmo a página de ajuda para 'autochdir' informa que o uso da ferramenta interromperá alguns plug-ins.

Eu criei minha própria solução, que pode ser muito específica para meus casos de uso:

inoremap ./<C-X><C-F> <C-O>:lcd %:p:h<CR><C-X><C-F>

Eu planejo extraí-lo em uma função e definir uma variável para o pwd antes que o comando lcs seja emitido e, em seguida, redefini-lo em algum momento. Seria legal se houvesse um menu autocmd.

Eu posso ou não usar isso, mas pensei em descartar outra solução.

    
por 06.06.2013 / 15:27

Tags