vim en FreeBSD no reacciona correctamente en las teclas de flecha y otros comportamientos similares a vi

9

Intenté usar vim en FreeBSD (a través de ssh en un terminal compatible con Linux xterm). Sin embargo, vim se comporta de manera similar a vi fuera de la caja. Por ejemplo, no reacciona al eliminar la tecla, inserte el carácter F en lugar de subir mientras está en el modo de inserción, etc.

En FreeBSD X11 no está instalado.

Editar : según lo preguntado, publicovim --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
fuente
¿Qué mapa de teclas estás usando en el cuadro de Linux?
gvkv
uk (establecido en /etc/conf.d/keymaps). En X11 uk + alguna personalización. Yo uso gnome-terminal.
Maciej Piechotka
¿Alguna razón para el voto negativo?
Maciej Piechotka

Respuestas:

8

Esto generalmente es un problema de configuración de terminal. Verifique su variable de entorno $ TERM en el lado de FreeBSD, y verifique la configuración de su terminal local. Este es casi seguramente el problema con las teclas de flecha.

Además de esto, asegúrese de tener aplicado el conjunto estándar de configuraciones "unbreak my vim" .vimrc.

set nocompat
set backspace=eol,start,indent

Si está seguro de que la configuración del terminal es correcta, pero aún tiene problemas de retroceso, consulte la ayuda de vim

:help fixdel
usuario455
fuente
7

Recientemente, configuré un servidor FreeBSD 8.2 después de trabajar principalmente con Linux, y tuve exactamente la misma frustración con VI. El problema es que FreeBSD viene con valores predeterminados muy diferentes para VI que la mayoría de las distribuciones de Linux.

Gracias por tropezar con esta página: http://jmcpherson.org/vimrc.html , así es como configuré mi archivo .vimrc para que VI funcione de la manera en que estoy acostumbrado:

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

Usé el nano editor de texto para hacer el archivo porque VI me estaba dando muchos problemas.

Para cualquier persona nueva en VI, simplemente cree un archivo de texto en su directorio de inicio llamado .vimrc y pegue el contenido del cuadro de código anterior y guárdelo. O puede probar cualquiera de esas opciones directamente en VI escribiendo :luego la opción, es decir, :set rulery presionando enter.

Ben Baron
fuente
Mientras interpreto la pregunta, parece que no solo estaba preguntando sobre la tecla Eliminar, o simplemente las teclas de flecha escribiendo letras en modo de inserción. Me parece que es un usuario de Linux que usa FreeBSD por primera vez y está frustrado con los valores predeterminados de VI en comparación con los valores predeterminados estándar utilizados en la mayoría de las distribuciones de Linux. Las opciones que publiqué harán que VI funcione tal como lo hace usualmente en Linux cuando instalo vim-mejorado. Así que creo que es una buena adición a la respuesta aceptada, y tampoco hay necesidad de meterse con la configuración del terminal (al menos no era necesario). Espero que mi información ayude a otros.
Ben Baron
3

¿Estás escribiendo "vim", o suponiendo que escribir "vi" ejecuta Vim?

En FreeBSD, es probable que el comando "vi" te consiga nvi .

Warren Young
fuente
Estoy escribiendo vim.
Maciej Piechotka
En un terminal use: escriba -a vi y escriba -a vim Después de eso: ls -ld / usr / bin / vi y ls -ld / usr / bin / vim para ver si hay un enlace simbólico.
bitek
which vim-> /usr/local/bin/vim, which vi-> /usr/bin/vi. No tengo type-> no hay tal comando. Ninguno es enlace simbólico.
Maciej Piechotka
"tipo" es un Bash incorporado. "type -p" es lo mismo que "which", y "type -a" solo lo extiende. ¿Puedes publicar el resultado de "vim --version"?
Warren Young
publicado en publicación principal
Maciej Piechotka
1

Supongo que lo siguiente podría ser la posible razón de este problema:

  1. Puede estar en su archivo vimrc por error alguien ha configurado vim para que se comporte como vi.
    set compatible
  2. Su vim está apuntando al binario vi original.
Hemant
fuente
Como se dijo, no está apuntando. No tengo ningún vimrcarchivo o similar.
Maciej Piechotka
@Maciej pero freebsd establece los valores predeterminados. Si tuviera un centavo por cada distribución que estropeó los valores predeterminados de vim ... ¿ha leído: h compatible? ¿ha comprobado el archivo vimrc que probablemente tiene freebsd?
xenoterracide
@Maciej: ¿comprobaste por .vimrc?
Hemant
No tengo .vimrc
Maciej Piechotka
1

Lo primero que hago después de instalar vim:

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

Eso tiene los valores predeterminados más sanos, excepto que configuré background = dark.

Mel
fuente
Gracias por esto. Me arregló muchas cosas. Tiene muchas cosas adicionales, por supuesto, pero es un buen punto de partida.
beatgammit