vim pada FreeBSD tidak bereaksi pada tombol panah dengan benar dan perilaku vi-like lainnya

9

Saya mencoba menggunakan vim pada FreeBSD (melalui ssh pada terminal yang kompatibel dengan Linux xterm). Namun vim berperilaku mirip dengan vi out-of-box. Misalnya itu tidak bereaksi pada tombol hapus, masukkan karakter F bukannya naik saat pada mode insert dll.

Pada FreeBSD X11 tidak diinstal.

Sunting : Seperti yang diminta, saya mempostingvim --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
sumber
Apa keymap yang Anda gunakan pada kotak Linux?
gvkv
uk (di /etc/conf.d/keymaps). Di X11 uk + beberapa penyesuaian. Saya menggunakan terminal gnome.
Maciej Piechotka
Ada alasan untuk downvote?
Maciej Piechotka

Jawaban:

8

Ini umumnya masalah pengaturan terminal. Periksa variabel lingkungan $ TERM Anda di sisi FreeBSD, dan periksa apa pengaturan terminal lokal Anda. Ini hampir pasti masalah dengan tombol panah.

Selain itu, pastikan Anda memiliki set standar "unbreak my vim" .vimrc pengaturan diterapkan.

set nocompat
set backspace=eol,start,indent

Jika Anda yakin pengaturan terminal sudah benar, tetapi Anda masih mengalami masalah backspace, lihat bantuan vim

:help fixdel
pengguna455
sumber
7

Saya baru saja membuat server FreeBSD 8.2 setelah kebanyakan bekerja dengan Linux, dan saya memiliki frustrasi yang sama persis dengan VI. Masalahnya adalah bahwa FreeBSD hadir dengan standar yang sangat berbeda untuk VI daripada kebanyakan distro Linux.

Berkat tersandung ke halaman ini: http://jmcpherson.org/vimrc.html , inilah cara saya mengatur file .vimrc saya agar VI bekerja dengan cara yang biasa saya lakukan:

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

Saya menggunakan editor teks nano untuk membuat file karena VI memberi saya banyak masalah.

Bagi siapa pun yang baru mengenal VI, cukup buat file teks di direktori home Anda bernama .vimrc dan rekatkan isi kotak kode di atas dan simpan. Atau Anda dapat mencoba salah satu dari opsi-opsi itu tepat di VI dengan mengetikkan :opsi maka, yaitu :set rulerdan menekan enter.

Ben Baron
sumber
Saat saya menafsirkan pertanyaan, sepertinya dia tidak hanya bertanya tentang tombol hapus, atau hanya tombol panah mengetik huruf dalam mode sisipkan. Tampak bagi saya bahwa dia adalah pengguna Linux yang menggunakan FreeBSD untuk pertama kalinya dan frustrasi dengan standar VI dibandingkan dengan standar standar yang digunakan di sebagian besar distro Linux. Opsi yang saya posting akan membuat VI berfungsi seperti biasanya di Linux ketika menginstal vim-enhanced. Jadi saya pikir ini adalah tambahan yang bagus untuk jawaban yang diterima, dan juga tidak perlu dipusingkan dengan pengaturan terminal (setidaknya saya tidak perlu). Semoga info saya membantu orang lain.
Ben Baron
3

Apakah Anda mengetik "vim", atau menganggap bahwa mengetik "vi" menjalankan Vim?

Pada FreeBSD, perintah "vi" kemungkinan membuat Anda nvi .

Warren Young
sumber
Saya mengetik vim.
Maciej Piechotka
Dalam penggunaan terminal: ketik -a vi dan ketik -a vim Setelah itu: ls -ld / usr / bin / vi dan ls -ld / usr / bin / vim untuk melihat apakah ada tautan simbolik.
bitek
which vim-> /usr/local/bin/vim, which vi-> /usr/bin/vi. Saya tidak punya type-> tidak ada perintah seperti itu. Tidak ada yang symlink.
Maciej Piechotka
"type" adalah Bash bawaan. "type -p" adalah hal yang sama dengan "which", dan "type -a" hanya memperluas itu. Bisakah Anda memposting output "vim --version"?
Warren Young
diposting di pos utama
Maciej Piechotka
1

Dugaan saya berikut ini bisa menjadi alasan yang memungkinkan untuk masalah ini:

  1. Mungkin ada di file vimrc Anda secara tidak sengaja seseorang telah menetapkan vim untuk berperilaku seperti vi.
    set compatible
  2. Vim Anda menunjuk ke biner vi asli.
Hemant
sumber
Seperti yang dinyatakan itu tidak menunjuk. Saya tidak punya vimrcfile apa pun atau yang serupa.
Maciej Piechotka
@Maciej tetapi freebsd menetapkan default apa pun. Jika saya memiliki nikel untuk setiap distro yang mengacaukan default vim ... apakah Anda sudah membaca: h kompatibel? Sudahkah Anda memeriksa file vimrc yang mungkin dimiliki freebsd?
xenoterracide
@ Maciej: apakah Anda memeriksa .vimrc?
Hemant
Saya tidak punya .vimrc
Maciej Piechotka
1

Hal pertama yang saya lakukan setelah menginstal vim:

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

Itu memiliki default paling waras, kecuali bahwa saya mengatur latar belakang = gelap.

Mel
sumber
Terima kasih untuk ini. Itu memperbaiki banyak hal untuk saya. Memang ada banyak hal tambahan, tentu saja, tetapi ini adalah titik awal yang baik.
beatgammit