Sunting: Masalah mouse yang diaktifkan di vim
tampaknya khusus untuk gnome-terminal
(versi 3.4.1.1-1; Saya menggunakan mode fallback gnome 3). Jika saya menjalankan xterm
, dukungan mouse dalam vim
dinonaktifkan secara default, dan saya memiliki opsi untuk mengaktifkannya ( :set mouse=a
, yang tidak pernah saya lakukan) dan menonaktifkannya ( :set mouse=
). Sebaliknya, ketika saya menjalankan vim
di gnome-terminal
, dukungan mouse diaktifkan secara default dan tidak mungkin untuk menonaktifkannya ( :set mouse=
tidak berpengaruh). Apakah ada solusi untuk mengganti emulator terminal?
Saya ingin sepenuhnya menonaktifkan dukungan mouse di vim
. Saya menjalankan vim
versi 2: 7.3.547-3 hingga gnome-terminal
versi 3.4.1.1-1. Perintah-perintah berikut, apakah dijalankan secara langsung dalam vim atau ditambahkan ke .vimrc
file saya , gagal menonaktifkan dukungan mouse:
set mouse =
set mouse =""
Berdasarkan membaca manual vim dan posting online, satu atau kedua perintah ini harus berfungsi. Secara khusus, manual vim menyatakan yang berikut ini
'mouse' string (default "", "a" for GUI, MS-DOS and Win32)
The mouse can be enabled for different modes:
n Normal mode
v Visual mode
i Insert mode
c Command-line mode
h all previous modes when editing a help file
a all previous modes
r for |hit-enter| and |more-prompt| prompt
Normally you would enable the mouse in all four modes with: >
:set mouse=a
When the mouse is not enabled, the GUI will still use the mouse for
modeless selection. This doesn't move the text cursor.
Saya menggunakan laptop dan setiap kali tangan saya menyentuh trackpad, posisi kursor saya dalam gerakan tiba-tiba bergerak.
sumber
.vimrc
file di rumah Anda harus menyelesaikan masalah (itu bagi saya). Tidak perlu mengandung apa pun, bahkan bisa berupa file kosong./usr/share/
yang dikelola oleh manajer paket Anda adalah ide yang buruk. Jika Anda ingin menyimpan beberapa opsidefaults.vim
, saya akan menyalinnya~/.vimrc
.dukungan mouse dinonaktifkan secara default, jadi ada sesuatu yang menyalakannya. Kemungkinan alasan Anda
set mouse=
gagal adalah karena itu berjalan sebelum apa pun yang menyalakannya. Saya akan melihat-lihat sisa vimrc Anda, dan mungkin vimrc lebar sistem (/etc/vim/vimrc
adalah lokasi standar).Sebagai upaya terakhir, Anda dapat melakukan peretasan yang sangat buruk ini yang akan menyebabkan perintah dijalankan sebagai salah satu hal terakhir yang dilakukan sebelum memberi Anda kendali atas editor.
sumber
/etc/vim/vimrc
File saya cukup telanjang (runtime! debian.vim
dan kondisionalif filereadable("/etc/vim/vimrc.local") ; source /etc/vim/vimrc.local; endif
). The/etc/vim/vimrc.local
file tidak ada pada sistem saya.~/.vimrc
File saya hanya memiliki beberapa baris yang telah saya tambahkan secara manual. Sebuahstrace
ofvim
mengungkapkan bahwa itu memeriksa lokasi berikut untuk file konfigurasi:/usr/share/vim/vimrc
,/etc/vim/vimrc.local
( ENOENT ), dan/home/user/.vimrc
. (Mengapa saya menerima kesalahan ENOENT; bukankahif
pernyataan itu mencegah upaya untuk membuka file yang tidak ada ini?).:set mouse=
langsung dalam vim, tidakkah ini mengesampingkan pengaturan apa pun dari file konfigurasi? Mengapa eksekusi langsung pernyataan inivim
tidak menonaktifkan kontrol mouse?ENOENT
vim harus memeriksa apakah file ada. Ini biasanya dilakukan dengan memanggilstat
yang mengembalikanENOENT
jika file tidak ada.xterm
dan tidak punya masalah dengan aktivasi mouse. Saya bisa mereproduksi masalah dengan mengetik:set mouse=a
dalamvim
menjalankanxterm
(dan membalikkannya dengan mengetik:set mouse=
). Ada yang tahu bagaimana cara mengatasi masalahgnome-terminal
? Haruskah saya memulai utas baru? Terima kasih.Saya mengalami ini pada aplikasi OS X "Terminal" pada host Fedora Server 25. Saya telah menyelesaikannya secara permanen dengan ini di .vimrc saya dengan:
Sekarang saya dapat menggulir ke riwayat bash saya sebelumnya di scrollback terminal saya dengan mouse saya.
sumber
set ttymouse=
memiliki perilaku aneh untuk saya, misalnya perilaku yang disebabkan tombol panah, tombol escape untuk berubah.Saya memiliki keluhan yang hampir sama dengan Anda tentang sensitivitas Vim yang lebih baru terhadap mouse. Menggunakan
set mouse=""
juga tidak melakukannya untuk saya.Saya memiliki
set mouse=c
(tanpa tanda kutip) dekat dengan bagian bawah.vimrc
file saya . Itu sepertinya membuat Vim tidak menggunakan mouse, kecuali saat menggunakan "Putty" untuk ssh in dari (Windows) mesin Windows saya di tempat kerja. Saya harus menggunakan shift-tombol tengah untuk menempelkan di Putty.Sunting 2018-03-30: Saya sekarang sudah mulai menggunakan:
:mouse=
(tidak ada tanda kutip atau apa pun) pada beberapa contoh remote (CentOS 6.7) vim untuk menghilangkan efek mouse yang tidak diinginkan.sumber
.vimrc
file saya dan mencoba menjalankannya secara interaktif (:set mouse=c
), tetapi tidak ada yang berpengaruh dalam kasus saya.Tambahkan ini ke Anda
.vimrc
:sumber
has("gui_running")
0 di lingkungan terminal. Jawaban ini, tidak seperti yang lain, membutuhkan usaha ekstra untuk hanya menonaktifkan mouse di lingkungan terminal, yang ditanyakan, sambil membiarkannya diaktifkan di gvim.Pada debian stretch, beberapa pengaturan pusat dimuat setelah memuat
/etc/vim/vimrc
dan/etc/vim/vimrc.local
. Lihat/etc/vim/vimrc
:File ini default ke
/usr/share/vim/vim80/defaults.vim
. Sekarang mengubah file sentral bawah/usr/share/...
yaituPengaturan
skip_defaults_vim
dengan menghapus komentar pada baris di atas menghapus semua opsi lain yang ditetapkan oleh file itu. Untuk hanya menghapus opsi yang tidak diinginkan masukkan yang berikut ini ke/etc/vimrc.local
:Ini memuat
defaults.vim
secara manual dan mematikan pemuatan otomatis, sehingga memberi Anda kesempatan untuk mengembalikan pengaturan yang tidak diinginkan, tanpa harus membuat.vimrc
untuk setiap akun pengguna.sumber
Agak terkait dengan pertanyaan, jika Anda menggunakan neovim (nvim) Anda harus memasukkan file konfigurasi
set mouse=
Anda~/.config/nvim/init.vim
.Jika direktori tidak ada, buat dengan
mkdir -p ~/.config/nvim/
sumber