vim sur FreeBSD ne réagit pas correctement sur les touches fléchées et autres comportements de type vi

9

J'ai essayé d'utiliser vim sur FreeBSD (via ssh sur un terminal compatible Linux xterm). Cependant, vim se comporte de la même façon que vi out-of-box. Par exemple, il ne réagit pas sur la touche de suppression, insère le caractère F au lieu de monter en mode d'insertion, etc.

Sur FreeBSD X11 n'est pas installé.

Modifier : comme demandé, je postevim --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
la source
Quelle carte clé utilisez-vous sur la boîte Linux?
gvkv
uk (défini dans /etc/conf.d/keymaps). Dans X11 uk + une certaine personnalisation. J'utilise gnome-terminal.
Maciej Piechotka
Une raison de déprécier?
Maciej Piechotka

Réponses:

8

Il s'agit généralement d'un problème de configuration du terminal. Vérifiez votre variable d'environnement $ TERM du côté de FreeBSD, et vérifiez quel est votre paramètre de terminal local. C'est presque certainement le problème avec les touches fléchées.

En plus de cela, assurez-vous que l'ensemble standard de paramètres "unbreak my vim" .vimrc est appliqué.

set nocompat
set backspace=eol,start,indent

Si vous êtes sûr que les paramètres du terminal sont corrects, mais que vous rencontrez toujours des problèmes de retour arrière, consultez l'aide de vim

:help fixdel
user455
la source
7

J'ai récemment installé un serveur FreeBSD 8.2 après avoir principalement travaillé avec Linux, et j'ai eu exactement la même frustration avec VI. Le problème est que FreeBSD est livré avec des valeurs par défaut très différentes pour VI que la plupart des distributions Linux.

Merci de tomber sur cette page: http://jmcpherson.org/vimrc.html , voici comment j'ai configuré mon fichier .vimrc pour que le VI fonctionne comme d'habitude:

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

J'ai utilisé l'éditeur de texte nano pour créer le fichier parce que le VI me causait tellement de problèmes.

Pour toute personne novice en VI, créez simplement un fichier texte dans votre répertoire personnel appelé .vimrc et collez le contenu de la zone de code ci-dessus et enregistrez. Ou vous pouvez essayer n'importe laquelle de ces options directement dans VI en tapant a :puis l'option, c'est :set ruler-à- dire et en appuyant sur Entrée.

Ben Baron
la source
Au fur et à mesure que j'interprète la question, il semble qu'il ne se soit pas contenté de poser des questions sur la touche de suppression, ou simplement sur les touches fléchées tapant des lettres en mode insertion. Il me semble qu'il est un utilisateur Linux utilisant FreeBSD pour la première fois et frustré par les valeurs par défaut du VI par rapport aux valeurs par défaut standard utilisées dans la plupart des distributions Linux. Les options que j'ai publiées permettront au VI de fonctionner comme il le fait habituellement sous Linux lors de l'installation de vim. Je pense donc que c'est un bon ajout à la réponse acceptée, et il n'est pas non plus nécessaire de jouer avec les paramètres du terminal (du moins, je n'en avais pas besoin). Espérons que mes informations aident les autres.
Ben Baron
3

Êtes-vous en train de taper "vim", ou en supposant que taper "vi" exécute Vim?

Sur FreeBSD, la commande "vi" est susceptible de vous obtenir nvi .

Warren Young
la source
Je tape vim.
Maciej Piechotka
Dans un terminal, utilisez: type -a vi et type -a vim Après cela: ls -ld / usr / bin / vi et ls -ld / usr / bin / vim pour voir s'il existe un lien symbolique.
bitek
which vim-> /usr/local/bin/vim, which vi-> /usr/bin/vi. Je n'ai pas type-> pas une telle commande. Aucun n'est un lien symbolique.
Maciej Piechotka
"type" est un Bash intégré. "type -p" est la même chose que "which", et "type -a" ne fait que l'étendre. Pouvez-vous publier la sortie de "vim --version"?
Warren Young
publié dans le poste principal
Maciej Piechotka
1

ma supposition est la suivante pourrait être la raison possible de ce problème:

  1. Peut être dans votre fichier vimrc par erreur, quelqu'un a configuré vim pour qu'il se comporte comme vi.
    set compatible
  2. Votre vim pointe vers le binaire vi original.
Hemant
la source
Comme indiqué, il ne pointe pas. Je n'ai aucun vimrcfichier ou similaire.
Maciej Piechotka
@Maciej mais freebsd ne définit aucune valeur par défaut. Si j'avais un nickel pour chaque distribution qui a foiré les défauts de vim ... avez-vous lu le: h compatible? avez-vous vérifié le fichier vimrc que freebsd a probablement?
xenoterracide
@Maciej: avez-vous vérifié .vimrc?
Hemant
Je n'ai pas .vimrc
Maciej Piechotka
1

Première chose que je fais après avoir installé vim:

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

Cela a la plupart des valeurs par défaut, sauf que je mets background = dark.

Mel
la source
Merci pour cela. Ça a arrangé beaucoup de choses pour moi. Il y a beaucoup de choses supplémentaires, bien sûr, mais c'est un bon point de départ.
beatgammit