Tombol panah vi Linux rusak dalam mode penyisipan

95

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?

astaga
sumber
3
Maksud saya distribusi linux?
Miquel
Apakah mereka bekerja jauh dari rumah? :-)
Brian Agnew
4
Jelas, solusinya adalah emacs. Jelas sekali.
Paul Nathan
38
@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.)

Brian Agnew
sumber
7
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.

Han
sumber
1
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 ":"

Alexx Roche
sumber
: 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.

lothar
sumber
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
Stabledog
sumber
Saya mencoba segalanya setelah mengalami masalah ini, dan inilah yang saya cari, terima kasih!
Dan Bartlett
Terima kasih atas perbaikannya, saya mencari kemana-mana. Adakah ide mengapa pemetaan ulang pelarian menyebabkan masalah?
nonfoto
6

Satu-satunya hal yang berhasil untuk saya adalah ": set term = ansi"

Raz
sumber
1
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

Night5talker
sumber
1

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.

errordeveloper
sumber
0

Anda mungkin juga ingin mencoba 'noesckeys'


sumber
0

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:

cp vimrc_example.vim ~/.vimrc
Noufal
sumber
-1

Di baris perintah tulis ini:

EXINIT="set nocompatible"; export EXINIT
Soheil
sumber
1
tambahkan beberapa deskripsi (singkat) tentang solusi Anda
Raidri mendukung Monica