vim unter FreeBSD reagiert nicht richtig auf Pfeiltasten und andere vi-ähnliche Verhaltensweisen

9

Ich habe versucht, vim unter FreeBSD zu verwenden (über ssh unter Linux xterm-kompatiblem Terminal). Vim verhält sich jedoch ähnlich wie vi out-of-box. Zum Beispiel reagiert es nicht auf die Löschtaste, fügt ein F-Zeichen ein, anstatt im Einfügemodus nach oben zu gehen usw.

Unter FreeBSD ist X11 nicht installiert.

Edit : Wie gefragt poste ichvim --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
quelle
Welche Keymap verwenden Sie auf der Linux-Box?
Gvkv
uk (eingestellt in /etc/conf.d/keymaps). In X11 UK + einige Anpassungen. Ich benutze Gnome-Terminal.
Maciej Piechotka
Gibt es einen Grund für eine Ablehnung?
Maciej Piechotka

Antworten:

8

Dies ist im Allgemeinen ein Problem bei der Terminaleinstellung. Überprüfen Sie Ihre $ TERM-Umgebungsvariable auf der FreeBSD-Seite und Ihre lokale Terminaleinstellung. Dies ist mit ziemlicher Sicherheit das Problem mit den Pfeiltasten.

Stellen Sie außerdem sicher, dass Sie die Standardeinstellungen ".vimrc unbreak my vim" angewendet haben.

set nocompat
set backspace=eol,start,indent

Wenn Sie sicher sind, dass die Terminaleinstellungen korrekt sind, aber immer noch Probleme mit der Rücktaste auftreten, lesen Sie die Hilfe von vim

:help fixdel
user455
quelle
7

Ich habe erst kürzlich einen FreeBSD 8.2-Server eingerichtet, nachdem ich hauptsächlich mit Linux gearbeitet habe, und ich hatte genau die gleiche Frustration mit VI. Das Problem ist, dass FreeBSD für VI ganz andere Standardeinstellungen enthält als die meisten Linux-Distributionen.

Dank des Stolperns auf diese Seite: http://jmcpherson.org/vimrc.html , so richte ich meine .vimrc-Datei so ein, dass VI so funktioniert, wie ich es gewohnt bin:

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

Ich habe den Nano-Texteditor verwendet, um die Datei zu erstellen, weil VI mir so viel Ärger bereitete.

Erstellen Sie für alle VI-Neulinge einfach eine Textdatei in Ihrem Home-Verzeichnis mit dem Namen .vimrc, fügen Sie den Inhalt des obigen Codefelds ein und speichern Sie ihn. Oder Sie können eine dieser Optionen direkt in VI ausprobieren, indem Sie eine und :dann die Option eingeben , dh :set rulerdie Eingabetaste drücken.

Ben Baron
quelle
Während ich die Frage interpretiere, sieht es so aus, als würde er nicht nur nach der Löschtaste oder nach den Pfeiltasten fragen, die im Einfügemodus Buchstaben eingeben. Es scheint mir, dass er ein Linux-Benutzer ist, der FreeBSD zum ersten Mal verwendet, und mit den VI-Standardeinstellungen im Vergleich zu den Standard-Standardeinstellungen, die in den meisten Linux-Distributionen verwendet werden, frustriert ist. Mit den von mir veröffentlichten Optionen funktioniert VI wie unter Linux bei der Installation von vim-erweitert. Ich denke, es ist eine gute Ergänzung zu der akzeptierten Antwort, und es besteht auch keine Notwendigkeit, sich mit den Terminaleinstellungen herumzuschlagen (zumindest musste ich das nicht). Hoffentlich helfen meine Informationen anderen.
Ben Baron
3

Geben Sie "vim" ein oder nehmen Sie an, dass bei der Eingabe von "vi" Vim ausgeführt wird?

Unter FreeBSD werden Sie wahrscheinlich mit dem Befehl "vi" nvi erhalten .

Warren Young
quelle
Ich schreibe vim.
Maciej Piechotka
Verwenden Sie in einem Terminal: -a vi und -a vim. Danach: ls -ld / usr / bin / vi und ls -ld / usr / bin / vim, um festzustellen, ob eine symbolische Verknüpfung vorhanden ist.
Bitek
which vim-> /usr/local/bin/vim, which vi-> /usr/bin/vi. Ich habe keinen type-> keinen solchen Befehl. Keiner ist symlink.
Maciej Piechotka
"type" ist ein eingebauter Bash. "Typ -p" ist dasselbe wie "welches", und "Typ -a" erweitert das nur. Können Sie die Ausgabe von "vim --version" posten?
Warren Young
Gepostet
1

Ich vermute, dass Folgendes der mögliche Grund für dieses Problem sein könnte:

  1. Möglicherweise befindet sich jemand versehentlich in Ihrer vimrc-Datei und hat vim so eingestellt, dass es sich wie vi verhält.
    set compatible
  2. Ihr vim zeigt auf die ursprüngliche vi-Binärdatei.
Hemant
quelle
Wie gesagt zeigt es nicht. Ich habe keine vimrcoder eine ähnliche Datei.
Maciej Piechotka
@Maciej setzt aber freebsd alle Standardeinstellungen. Wenn ich für jede Distribution, die die vim-Standardeinstellungen durcheinander gebracht hat, einen Nickel hatte ... haben Sie die: h-kompatiblen gelesen? Haben Sie die vimrc-Datei überprüft, die freebsd wahrscheinlich hat?
Xenoterracide
@ Maciej: Hast du nach .vimrc gesucht?
Hemant
Ich habe nicht .vimrc
Maciej Piechotka
1

Das erste, was ich nach der Installation von vim mache:

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

Das hat die meisten vernünftigen Standardeinstellungen, außer dass ich background = dark gesetzt habe.

Mel
quelle
Danke dafür. Es hat viele Dinge für mich behoben. Es gibt natürlich viele zusätzliche Dinge, aber es ist ein guter Ausgangspunkt.
Beatgammit