O vim no FreeBSD não reage corretamente nas teclas de seta e em outros comportamentos semelhantes ao vi

9

Tentei usar o vim no FreeBSD (via ssh no terminal compatível com Linux xterm). No entanto, o vim se comporta de maneira semelhante ao vi pronto para uso. Por exemplo, ele não reage na tecla Delete, insira o caractere F em vez de subir no modo de inserção etc.

No FreeBSD X11 não está instalado.

Edit : Como solicitado, eu postovim --version

# vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 28 2010 11:48:54)
Included patches: 1-6, 8-35, 37-48, 50-70, 73, 75-87, 90-92, 94-100, 102-137, 139-149, 151-171,     173-190, 192-193, 195-203, 206-211, 213-215, 217-218, 220-232, 234-246, 251-259, 261-301, 303-319, 321-322, 324-335, 337-351, 353-361, 363, 366-371, 373, 375-376, 378-383, 385-387, 389-398, 401-402, 404-411
Compiled by [email protected]
Big version without GUI.  Features included (+) or not (-):
+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent 
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+cryptv +cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic 
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path 
+float +folding -footer +fork() -gettext -hangul_input +iconv +insert_expand 
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap 
+menu +mksession +modify_fname +mouse -mouseshape +mouse_dec -mouse_gpm 
-mouse_jsbterm +mouse_netterm +mouse_sysmouse +mouse_xterm +multi_byte 
+multi_lang -mzscheme -netbeans_intg -osfiletype +path_extra -perl +postscript 
+printer -profile -python +quickfix +reltime +rightleft -ruby +scrollbind 
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax 
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse 
+textobjects +title -toolbar +user_commands +vertsplit +virtualedit +visual 
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup 
-X11 -xfontset -xim -xsmp -xterm_clipboard -xterm_save 
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: cc -c -I. -Iproto -DHAVE_CONFIG_H   -I/usr/local/include  -O2 -pipe -fno-strict-aliasing  -D_FORTIFY_SOURCE=1        
Linking: cc   -L/usr/local/lib -o vim       -lm -ltermlib -liconv  
Maciej Piechotka
fonte
Qual mapa-chave você está usando na caixa do Linux?
gvkv
uk (definido em /etc/conf.d/keymaps). No X11 uk + alguma personalização. Eu uso o gnome-terminal.
Maciej Piechotka 18/08/10
Alguma razão para voto negativo?
Maciej Piechotka 12/02

Respostas:

8

Isso geralmente é um problema de configuração do terminal. Verifique sua variável de ambiente $ TERM no lado do FreeBSD e verifique qual é a sua configuração de terminal local. Este é quase certamente o problema com as teclas de seta.

Além disso, verifique se você tem o conjunto padrão de configurações "unbreak my vim" .vimrc aplicadas.

set nocompat
set backspace=eol,start,indent

Se você tem certeza de que as configurações do terminal estão corretas, mas ainda está com problemas de backspace, consulte a ajuda do vim

:help fixdel
user455
fonte
7

Acabei de configurar um servidor FreeBSD 8.2 depois de trabalhar principalmente com Linux, e tive exatamente a mesma frustração com o VI. O problema é que o FreeBSD vem com padrões muito diferentes para o VI do que a maioria das distribuições Linux.

Graças a tropeçar nesta página: http://jmcpherson.org/vimrc.html , veja como eu configuro meu arquivo .vimrc para que o VI funcione da maneira que estou acostumado:

set nocompatible
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions-=T
set vb t_vb=
set ruler
set nohls
set incsearch
set virtualedit=all
set bs=2

Eu usei o nano editor de texto para criar o arquivo porque o VI estava me dando muitos problemas.

Para quem é novo no VI, basta criar um arquivo de texto em seu diretório pessoal chamado .vimrc e colar o conteúdo da caixa de código acima e salvar. Ou você pode tentar qualquer uma dessas opções no VI digitando :a opção então, ou seja, :set rulerpressionando enter.

Ben Baron
fonte
Enquanto interpreto a pergunta, parece que ele não estava apenas perguntando sobre a tecla Delete ou apenas as teclas de seta digitando letras no modo de inserção. Parece-me que ele é um usuário do Linux que utiliza o FreeBSD pela primeira vez e está frustrado com os padrões do VI, em comparação com os padrões padrão usados ​​na maioria das distribuições do Linux. As opções que eu publiquei farão com que o VI funcione exatamente como no Linux ao instalar o vim-Enhanced. Então eu acho que é uma boa adição à resposta aceita, e também não há necessidade de mexer nas configurações do terminal (pelo menos eu não precisava). Espero que minhas informações ajudem outras pessoas.
Ben Baron
3

Você está digitando "vim" ou assumindo que digitar "vi" executa o Vim?

No FreeBSD, o comando "vi" provavelmente fará com que você nvi .

Warren Young
fonte
Estou digitando vim.
Maciej Piechotka
Em um terminal, use: digite -a vi e digite -a vim Depois disso: ls -ld / usr / bin / vi e ls -ld / usr / bin / vim para verificar se há um link simbólico.
Bitek
which vim-> /usr/local/bin/vim, which vi-> /usr/bin/vi. Eu não tenho type-> nenhum comando assim. Nenhum é o link simbólico.
Maciej Piechotka 18/08/10
"type" é um Bash embutido. "type -p" é a mesma coisa que "what" e "type -a" apenas estendem isso. Você pode postar a saída do "vim --version"?
Warren Young
postado no post principal
Maciej Piechotka
1

meu palpite está a seguir pode ser o possível motivo para esse problema:

  1. Pode estar no seu arquivo vimrc por engano, alguém configurou o vim para se comportar como o vi.
    set compatible
  2. Seu vim está apontando para o binário vi original.
Hemant
fonte
Como afirmado, não está apontando. Não tenho nenhum vimrcarquivo ou semelhante.
Maciej Piechotka
@ Maciej, mas o freebsd define todos os padrões. Se eu tivesse um níquel para cada distro que estragou os padrões do vim ... você leu o: h compatível? você verificou o arquivo vimrc que o freebsd provavelmente possui?
Xenoterracide
@Maciej: você procurou por .vimrc?
Hemant
Eu não tenho .vimrc
Maciej Piechotka
1

Primeira coisa que faço depois de instalar o vim:

cp ${LOCALBASE:-"/usr/local"}/share/vim/vim*/vimrc_example.vim ~/.vimrc

Isso tem os padrões mais sensatos, exceto que eu defino background = dark.

Mel
fonte
Obrigado por isso. Consertou muitas coisas para mim. É claro que tem muitas coisas extras, mas é um bom ponto de partida.
31812 beatbammit