Tombol panah saya tidak berfungsi di vi dalam mode penyisipan di rumah, mereka hanya memasukkan baris baru dan huruf kapital, seperti 'A'. Apakah ada cara untuk memperbaikinya?
@Paul Nathan - Jika solusinya emacs, maka saya tidak ingin tahu apa masalahnya.
Chas. Owens
Jawaban:
107
Saya kira Anda menggunakan vim karena ini ditandai sebagai Linux. Mencoba:
:set nocompatible
(Anda mungkin ingin mengkonfigurasi .vimrc Anda dengan ini dengan menambahkan perintah ini ke dalamnya. Buat file .vimrc baru jika belum ada di direktori home Anda, jalankan echo $HOMEuntuk memeriksa jalur direktori home.)
Pastikan Anda memulai vi dengan perintah vimdan tidak vi. Sebagian besar fitur lanjutan dan berguna vimdinonaktifkan secara default kecuali Anda memulainya vim.
poin
1
@pts - hanya pada sistem yang rusak. Memulai vim sebagai vi di semua kotak saya berfungsi dengan baik; Namun, ada beberapa kotak CentOS yang telah saya gunakan yang menunjukkan perilaku yang Anda bicarakan.
Chas. Owens
Bisakah seseorang mengedit jawaban ini untuk memasukkan seperti apa tampilannya di vimrc?
Stephan
1
@Stephan Tambahkan barisnya set nocompatiblesendiri di .vimrc
Matthew Wilcoxson
Di Ubuntu saya menyelesaikan ini hanya dengan menginstal vim (sudo apt install vim) sejak saat itu vi berfungsi dengan baik dengan tombol panah dalam mode penyisipan. Sunting: Saya lihat sekarang ini sudah disebutkan oleh Han di bawah sini.
pizzamonster
74
Ubuntu mengirimkan default dengan vim-tiny, yang tidak memiliki semua lonceng dan peluit yang dimiliki vim.
Lakukan cepat sudo apt-get install vimuntuk mendapatkan semua fitur menarik yang dibicarakan semua orang.
Inilah yang saya butuhkan di mint linux. Dengan menginstal vim saya masih bisa mulai menggunakan "vi" dan semua penyorotan kode sekarang telah diaktifkan. Betapa luar biasa pengetahuan tentang linux :)
wired00
1
Ini berfungsi untuk Raspberry Pi saya (Jessie Lite). Saya mengalami masalah ini ketika saya akan mengamankan shell ke dalamnya, tetapi sekarang telah diselesaikan sepenuhnya :-)
JakeD
35
:set term=builtin_ansi
memperbaikinya untuk saya. Anda dapat menempelkannya ke vim saat berada dalam mode escape, (mode bleep) atau menambahkannya ke akhir ~ / .vimrc tanpa awalan ":"
: set term = xterm mungkin juga berfungsi, (dan lebih mudah diingat).
Alexx Roche
FYI :set term=builtin_ansibekerja untuk saya. :set term=xtermtidak.
FractalSpace
di salah satu kotak Linux saya yang saya gunakan export TERM=xtermpada baris perintah sebelum menjalankan vi dan kemudian :set term=xtermdi vim 7.2 berfungsi untuk saya
Alexx Roche
Bekerja dengan sempurna! Terima kasih!
Akhmedzianov Danilian
Ini berfungsi untuk mengaktifkan navigasi tombol panah tetapi itu benar-benar mematikan semua kode warna di terminal.
Ken Ingram
16
vi tidak mendukung tombol panah dalam mode penyisipan. Gunakan vim. Meskipun vi Anda mungkin hanya berupa tautan ke vim, vim dapat dikonfigurasi agar berperilaku seperti vi "asli" dan dengan demikian menonaktifkan tombol panah. Panggil saja vim secara langsung.
Meskipun ini bukan solusi, ini adalah penjelasan terbaik untuk perilaku (imo), memperjelas perbedaan antara vidan vim. Tetapi pada kotak saya vimtercetak command not found: D
Daniel W.
@DanFromGermany Mungkin Anda hanya menginstal vi dan bukan vim. Silakan coba menginstal vim melalui manajer paket sistem Linux Anda jika Anda ingin menggunakannya.
lothar
:set term=ansibekerja untuk saya, terima kasih Raz . Anda mengatakan itu 'tidak mendukung'. Saya bertanya-tanya apakah Anda mengatakan itu karena vim-tinypaket ubuntu -saya menggunakan- berbeda dari vanilla viatau apakah pengaturan istilah akan berfungsi juga?
n611x007
8
Variasi lain: masalah ini muncul untuk saya setelah beberapa perubahan .vimrc. Pencarian bersama akhirnya mengungkapkan bahwa pemetaan ulang ESC saya yang cerdas dalam mode normal bukanlah ide yang baik. Menghapusnya memecahkan masalah:
" this is NOT something you want in .vimrc:
" In normal mode, hitting Esc turns off search highlights:
nmap <ESC> :nohl<CR> " Do NOT add this to .vimrc
Ini juga tampaknya berhasil untuk saya menggunakan container Docker.
ohlando
1
Yang ini juga berhasil untuk saya. Saya menggunakan cmd.exe di windows dan sshing ke ubuntu menggunakan vagrant
codelogn
@ CodeCodeO-1-O-log-n jadi sisi mana yang Anda gunakan vidi jendela atau sisi ubuntu? :)
n611x007
Di windows, saya menjalankan cmd.exe dan kemudian vagrant ssh ke server ubuntu dan kemudian vi ke server. Tetapi kemudian saya mulai menggunakan Putty dan saya tidak perlu melakukannya lagi dan Putty bekerja dengan baik untuk saya.
codelogn
3
Saya memiliki masalah yang sama dengan tombol panah, tetapi ketika saya menggunakannya, setel nocp atau nocompatible maka backspace saya tidak berfungsi dengan benar
untuk beberapa alasan ketika saya menginstal vim dengan
sudo apt-get install vim, vi tidak memiliki masalah dengan panah atau backspace lagi
dan setelah menggali selama satu jam, saya menemukan bahwa plugin AutoClose (yang sebenarnya tidak disukai) merusak tombol panah.
Dokumen plugin menyarankan bahwa seseorang harus menyetel set ttimeoutlen = 100, tetapi itu tidak berhasil untuk saya! (menggunakan layar urxvt + atau urxvt, dan bahkan xterm)
Jawaban:
Saya kira Anda menggunakan vim karena ini ditandai sebagai Linux. Mencoba:
(Anda mungkin ingin mengkonfigurasi .vimrc Anda dengan ini dengan menambahkan perintah ini ke dalamnya. Buat file .vimrc baru jika belum ada di direktori home Anda, jalankan
echo $HOME
untuk memeriksa jalur direktori home.)sumber
vim
dan tidakvi
. Sebagian besar fitur lanjutan dan bergunavim
dinonaktifkan secara default kecuali Anda memulainyavim
.set nocompatible
sendiri di .vimrcUbuntu mengirimkan default dengan
vim-tiny
, yang tidak memiliki semua lonceng dan peluit yang dimiliki vim.Lakukan cepat
sudo apt-get install vim
untuk mendapatkan semua fitur menarik yang dibicarakan semua orang.sumber
:set term=builtin_ansi
memperbaikinya untuk saya. Anda dapat menempelkannya ke vim saat berada dalam mode escape, (mode bleep) atau menambahkannya ke akhir ~ / .vimrc tanpa awalan ":"
sumber
:set term=builtin_ansi
bekerja untuk saya.:set term=xterm
tidak.export TERM=xterm
pada baris perintah sebelum menjalankan vi dan kemudian:set term=xterm
di vim 7.2 berfungsi untuk sayavi tidak mendukung tombol panah dalam mode penyisipan. Gunakan vim. Meskipun vi Anda mungkin hanya berupa tautan ke vim, vim dapat dikonfigurasi agar berperilaku seperti vi "asli" dan dengan demikian menonaktifkan tombol panah. Panggil saja vim secara langsung.
sumber
vi
danvim
. Tetapi pada kotak sayavim
tercetakcommand not found
: D:set term=ansi
bekerja untuk saya, terima kasih Raz . Anda mengatakan itu 'tidak mendukung'. Saya bertanya-tanya apakah Anda mengatakan itu karenavim-tiny
paket ubuntu -saya menggunakan- berbeda dari vanillavi
atau apakah pengaturan istilah akan berfungsi juga?Variasi lain: masalah ini muncul untuk saya setelah beberapa perubahan .vimrc. Pencarian bersama akhirnya mengungkapkan bahwa pemetaan ulang ESC saya yang cerdas dalam mode normal bukanlah ide yang baik. Menghapusnya memecahkan masalah:
sumber
Satu-satunya hal yang berhasil untuk saya adalah ": set term = ansi"
sumber
vi
di jendela atau sisi ubuntu? :)Saya memiliki masalah yang sama dengan tombol panah, tetapi ketika saya menggunakannya, setel nocp atau nocompatible maka backspace saya tidak berfungsi dengan benar
untuk beberapa alasan ketika saya menginstal vim dengan
sudo apt-get install vim
, vi tidak memiliki masalah dengan panah atau backspace lagisumber
Saya baru saja mengalami masalah dengan tombol panah setelah beralih menggunakan git di .vim.
Saya telah menginstal repo ini - https://github.com/sunaku/.vim
dan setelah menggali selama satu jam, saya menemukan bahwa plugin AutoClose (yang sebenarnya tidak disukai) merusak tombol panah.
Dokumen plugin menyarankan bahwa seseorang harus menyetel set ttimeoutlen = 100, tetapi itu tidak berhasil untuk saya! (menggunakan layar urxvt + atau urxvt, dan bahkan xterm)
Jadi saya menghapus plugin di bagian akhir.
sumber
Anda mungkin juga ingin mencoba 'noesckeys'
sumber
Saya mengalami masalah yang sama saat menggunakan vim di dalam Windows 8.1 dengan Cygwin.
Solusi yang berhasil untuk saya adalah, jalankan saja perintah berikut di terminal Cygwin Anda:
sumber
Di baris perintah tulis ini:
sumber