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?


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.)


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.


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 ":"


: 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

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"


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


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.


0

Anda mungkin juga ingin mencoba 'noesckeys'


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.