vim su FreeBSD non reagisce correttamente sui tasti freccia e su altri comportamenti simili a vi


9

Ho provato a usare vim su FreeBSD (tramite ssh su un terminale compatibile con Linux xterm). Comunque vim si comporta in modo simile a vi out-of-box. Ad esempio, non reagisce con il tasto Canc, non inserisce il carattere F invece di salire in modalità di inserimento, ecc.

Su FreeBSD X11 non è installato.

Modifica : come richiesto postvim --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  

Quale keymap stai usando sulla scatola di Linux?
gvkv,

uk (impostato in /etc/conf.d/keymaps). In X11 uk + alcune personalizzazioni. Uso gnome-terminal.
Maciej Piechotka,

Qualche motivo di downvote?
Maciej Piechotka,

Risposte:


8

Questo è generalmente un problema di impostazione del terminale. Controlla la tua variabile d'ambiente $ TERM sul lato di FreeBSD e controlla qual è l'impostazione del tuo terminale locale. Questo è quasi sicuramente il problema con i tasti freccia.

Inoltre, assicurati di avere il set standard di impostazioni .vimrc "unbreak my vim".

set nocompat
set backspace=eol,start,indent

Se sei sicuro che le impostazioni del terminale siano corrette, ma hai ancora problemi con il backspace, dai un'occhiata alla guida di vim

:help fixdel

7

Ho appena installato un server FreeBSD 8.2 dopo aver lavorato principalmente con Linux e ho avuto la stessa identica frustrazione con VI. Il problema è che FreeBSD ha impostazioni predefinite molto diverse per VI rispetto alla maggior parte delle distribuzioni Linux.

Grazie per essermi imbattuto in questa pagina: http://jmcpherson.org/vimrc.html , ecco come ho impostato il mio file .vimrc per far funzionare il VI nel modo in cui sono abituato:

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

Ho usato l'editor di testo nano per creare il file perché VI mi stava dando così tanti problemi.

Per chiunque sia nuovo a VI, basta creare un file di testo nella directory home chiamato .vimrc e incollare il contenuto della casella di codice in alto e salvare. Oppure puoi provare una di queste opzioni direttamente in VI digitando a :quindi l'opzione, cioè :set rulerpremendo il tasto invio.


Mentre interpreto la domanda, sembra che non si stia solo chiedendo del tasto Canc, o semplicemente dei tasti freccia che digitano le lettere in modalità inserimento. Mi sembra che sia un utente Linux che utilizza FreeBSD per la prima volta e frustrato dalle impostazioni predefinite VI rispetto alle impostazioni predefinite standard utilizzate nella maggior parte delle distribuzioni Linux. Le opzioni che ho pubblicato consentiranno al VI di funzionare esattamente come in Linux durante l'installazione di Vim-Enhanced. Quindi penso che sia una buona aggiunta alla risposta accettata, e inoltre non c'è bisogno di pasticciare con le impostazioni del terminale (almeno non ne ho avuto bisogno). Spero che le mie informazioni aiutino gli altri.
Ben Baron,

3

Stai scrivendo "vim", o supponendo che digitando "vi" venga eseguito Vim?

Su FreeBSD, è probabile che il comando "vi" ti ottenga nvi .


Sto scrivendo Vim.
Maciej Piechotka,

In un terminale usare: digitare -a vi e digitare -a vim Successivamente: ls -ld / usr / bin / vi e ls -ld / usr / bin / vim per vedere se esiste un collegamento simbolico.
Bitek,

which vim-> /usr/local/bin/vim, which vi-> /usr/bin/vi. Non ho type-> nessun comando del genere. Nessuno è link simbolico.
Maciej Piechotka,

"type" è un built-in di Bash. "type -p" è la stessa cosa di "which" e "type -a" estende questo. Puoi pubblicare l'output di "vim --version"?
Warren Young,

pubblicato in post principale
Maciej Piechotka il

1

la mia ipotesi che segue potrebbe essere la possibile ragione di questo problema:

  1. Potrebbe essere nel tuo file vimrc per errore qualcuno ha impostato vim per comportarsi come vi.
    set compatible
  2. Il tuo vim punta al binario vi originale.

Come detto, non punta. Non ho alcun vimrcfile o simile.
Maciej Piechotka,

@Maciej ma freebsd imposta eventuali valori predefiniti. Se avessi un nickel per ogni distro che ha rovinato le impostazioni predefinite di Vim ... hai letto: h compatibile? hai controllato il file vimrc che probabilmente ha freebsd?
xenoterracide,

@Maciej: hai controllato .vimrc?
Hemant,

Non ho .vimrc
Maciej Piechotka il

1

Prima cosa che faccio dopo aver installato vim:

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

Questo ha impostazioni predefinite più sane, tranne per il fatto che ho impostato background = dark.


Grazie per questo. Ha risolto molte cose per me. Ha molte cose extra, ovviamente, ma è un buon punto di partenza.
Beatgammit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.