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 root@enterprise.piechotka.com.pl
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  

¿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

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.


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 .


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.

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.


Gracias por esto. Me arregló muchas cosas. Tiene muchas cosas adicionales, por supuesto, pero es un buen punto de partida.
beatgammit
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.