Apakah perintah cygwin vim berbeda dari vim normal?

28

Saya tidak dapat mengedit file teks menggunakan vim di cygwin.

Saya harus menekan iberkali-kali untuk memasukkan teks. Terkadang itu berhasil dan terkadang tidak. Setiap kali saya memindahkan kursor ke bawah saya harus menekan saya berkali-kali.

Apa yang bisa menjadi masalah? Apakah backspaceberhasil di cygwin?

Randhir Singh
sumber
Apakah Anda menjalankan di dalam konsol Windows asli, di emulator terminal lain yang berjalan sebagai aplikasi asli, di emulator terminal yang berjalan di bawah X? Versi Windows apa? Apakah penundaan antara menekan ESCdan menekan imateri?
Gilles 'SO- berhenti bersikap jahat'

Jawaban:

34

Cygwin vim dikirimkan dengan konfigurasi default vim, yang membuat vim dalam mode kompatibilitas vi di mana ia mencoba untuk meniru vi aslinya sedekat mungkin. Di antara batasan lainnya, tombol panah tidak berfungsi dalam mode itu, dan backspace hanya menggerakkan kursor ke kiri daripada menghapus karakter.

Membuat kosong ~/.vimrcsudah cukup untuk menonaktifkan mode kompatibilitas vi:

touch ~/.vimrc

Karena itu, iuntuk masuk ke mode insert harus tetap berfungsi. Anda harus memberikan detail lebih lanjut tentang di mana dan bagaimana Anda menjalankan vim. Juga, apakah Anda benar-benar menjalankan vim yang datang dengan Cygwin, atau versi asli Windows vim?

Memperbarui

Anda dapat menambahkan set di bawah ini di ~ / .vimrc untuk membuatnya mirip dengan default vim

set nocompatible
set backspace=indent,eol,start
set backup
set history=50
set ruler
set background=dark
set showcmd
set incsearch
syntax on
set hlsearch

Jika vim tidak mengambil file vimrc Anda, itu mungkin mencari .vircfile sebagai gantinya. Dalam hal ini, ganti nama file dan perubahan akan diterapkan.

ak2
sumber
Akan lebih baik jika Anda akan mengatakan cara menonaktifkan kompatibilitas.
gideon
Apakah Anda tahu di mana lokasi rumah default cygwin? Saya ingin membuat .virc oleh GUI alih-alih cygwin
Alex
13

Cara termudah adalah menyalin file vimrc sampel Cygwin VIM

cp /usr/share/vim/vim*/vimrc_example.vim /etc/vimrc

Ini akan memperbaiki masalah untuk setiap akun di sistem Anda. Jika, karena alasan tertentu, Anda hanya ingin mengubahnya untuk pengguna tertentu, lakukan

cp /usr/share/vim/vim*/vimrc_example.vim ~/.vimrc

Lihat referensi di sini

Gaurav
sumber
1
Ini harus menjadi jawaban yang diterima karena contoh ini benar-benar mengaktifkan penyorotan sintaks secara default dan mungkin banyak default lain yang biasa digunakan orang.
JohnEye
Tidak berfungsi sampai PC restart. Tapi berhasil!
3bdalla
Jawaban luar biasa, sederhana dan menyelesaikan semua masalah berbeda yang saya lihat dengan instalasi cygwin baru, dan penyorotan sintaks adalah bonus yang tidak terduga
crobicha
Sejauh ini, inilah jawaban terbaik !!
Theodore R. Smith
1
dimana letak file itu? saya sedang mencari itu di / usr / share / tapi kemudian saya tidak bisa melihat direktori yang disebut vim.
neo33
3

Saya punya masalah dengan tombol panah saat mencoba vim di dalam Windows 8.1 menggunakan cygwin. Masalahnya adalah, mencetak A / B / C / D saat bernavigasi dengan tombol Panah dalam mode penyisipan. Solusi yang bekerja untuk saya adalah:

cp vimrc_example.vim ~/.vimrc

Pada dasarnya, perintah menyalin vimrc_example.vimfile di atas /home/<user name>/.vimrc.

noufal
sumber
Itu memperbaikinya bagi saya. Saya memiliki masalah yang sama dengan tombol sisipkan dan panah tidak berfungsi di vim. Itu pada Windows 10.
Yanick Girouard
2

Apakah Anda yakin tidak menggunakan vi, bukan vim?

rfelsburg
sumber
1

Coba dengan cara ini:

  • pertama:

    cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
    
  • lalu, tambahkan baris ini ke ./.bashrcfile Anda :

    alias vi="vim"
    
binghenzq
sumber
0

Tidak, perintahnya persis sama. Sepertinya Anda memiliki masalah input. Entah keyboard Anda berantakan atau terminal Anda ada di fritz atau sesuatu.

Caleb
sumber
0

Bergantung pada karakteristik program terminal Anda, ketika Anda menekan tombol kursor, ia mengirimkan urutan karakter yang dimulai dengan tombol ESC. Misalnya, tombol Panah Atas mengirimkan tiga karakter ESC [A. Dengan vim dalam mode input, menekan tombol kursor dapat menghentikan mode input ketika ESC terlihat, dan karakter berikutnya dapat diartikan sebagai perintah vim. Karena keluar dari mode input, Anda perlu menekan saya lagi untuk melanjutkan memasukkan teks. Mungkin inilah yang terjadi pada Anda.

Periksa apakah terminal Anda memiliki opsi yang dapat mengubah emulasi, seperti VT-100, VT-220, atau pengaturan yang menentukan apa yang dikirim ketika tombol Backspace atau Del ditekan. Mengubah pengaturan itu mungkin mendapatkan perilaku yang Anda inginkan. Jika Anda menggunakan konsol perintah Windows asli, Anda mungkin tidak mendapatkan opsi itu.

Anda mungkin harus menghindari menggunakan tombol kursor dalam mode input. Tekan ESC untuk keluar dari mode input, lalu gerakkan kursor, lalu saya lagi untuk input lebih lanjut. Begitulah cara kami orang-orang tua harus melakukannya sebelum vim cukup pintar untuk menafsirkan kunci kursor dalam mode input.

penyulap
sumber