A execução do vi no diretório não lista arquivos

6

Isto parece ser um novo bug (funcionalidade?) que se insinua no Ubuntu 13.10. Quando executo vi em um diretório, ele não lista os arquivos para os quais eu posso navegar com as teclas de seta; apenas mostra uma tela vazia com a mensagem 'Nome do arquivo ilegal'.

Agora é um incômodo porque eu tenho que ls do diretório primeiro se eu não sei qual arquivo eu quero editar e então eu tenho que digitar o nome do arquivo inteiro após o diretório no argumento de comando. / p>

Isso acontece quando vou para vi o tmp, etc, e até mesmo no meu diretório pessoal para o qual tenho permissão de gravação.

    
por Parag Magunia 26.11.2013 / 07:42

3 respostas

5

O comportamento que você está descrevendo é causado por um bug em netrw , que é o plug-in que manipula a navegação de arquivos.

A atualização para a versão mais recente do plug-in corrige esse comportamento.

Para fazer isso, baixe a última versão do netrw , abra-a vim e fonte dele. Ao fazer isso, o plug-in será extraído no diretório ~/.vim , onde será carregado antes da versão com bugs do sistema.

Faça o download do arquivo:

wget http://www.drchip.org/astronaut/vim/vbafiles/netrw.vba.gz

Abra em vim :

vim netrw.vba.gz

No vim, fonte:

:so %

Depois, feche o vim. Então, aproveite os diretórios de navegação novamente.

Atualizar : em uma caixa, isso me deu um erro sobre não conseguir fechar a última janela . Não teve efeito no plugin, que funcionou perfeitamente depois.

2nd Update : Esta versão do netrw espera uma versão do vim com o recurso área de transferência .

Você pode verificar se sua versão tem isso executando vim --version . A saída provavelmente terá -clipboard , o que significa que a capacidade não está ativada.

Para obter uma versão compilada com o suporte da área de transferência, instale qualquer versão do vim com uma GUI, que também irá substituir o seu normal vim por uma versão com o suporte clipboard . Eu usei o vim-gtk como um caso de teste.

    
por drc 26.11.2013 / 08:58
2

Eu tentei seguir as etapas dadas pelo drc, mas recebi erros estranhos (talvez devido à falta de suporte da área de transferência).

O seguinte funcionou para mim na imagem do docker do Ubuntu 13.10, com apenas uma versão padrão do Vim sem suporte à área de transferência:

vim /etc   # blank screen

wget http://www.vim.org/scripts/download_script.php?src_id=21427 -O netrw.vba.gz

# install the vimball
# may throw error E444, but this can seemingly can be ignored
vim netrw.vba.gz +"so %" +q  

vim /etc  # works fine

Note que a única coisa que eu fiz de forma diferente do que drc envolveu-me usando uma versão um pouco mais antiga do plugin netrw, ou seja, a que foi enviada para o vim.org em 2014-02-04.

    
por Dergachev 18.04.2014 / 17:02
-1

Para usar o vi em um arquivo, digite vi <file name> ou vi -r <file name> para recuperar um arquivo que você estava editando em caso de falha do sistema.

Se o arquivo existir, o arquivo será exibido; se o arquivo não existir, um arquivo e uma tela vazios serão criados e você poderá inserir texto.

    
por Mitch 26.11.2013 / 08:25