Terminal saya tidak memungkinkan saya mengetik Ctrl+ W, karena itu jalan pintas untuk menutup tab terminal.
Saya suka bekerja dengan split, tetapi saya tidak dapat menemukan cara untuk melakukannya tanpa menggunakan C-W
. Ini memaksa saya untuk menggunakan tab, karena saya dapat beralih di antara mereka dengan gt
, gT
atau di #gt
mana # adalah angka, tetapi saya merasa ini kurang nyaman daripada pemisahan karena saya hanya dapat melihat konten dari satu file pada suatu waktu.
Saya juga tidak dapat menggunakan mouse=a
karena terminal saya tidak mendukung itu.
Bagaimana saya bisa bekerja dengan split di Vim tanpa Ctrl+ Wcombo tersedia?
key-bindings
vim-windows
split
Mateon1
sumber
sumber
wincmd
Misalnya Anda dapat memetakan::nmap wj :wincmd j<cr>
ini bertindak sama sepertiCTRL-W j
(pindah ke jendela di bawah).:help wincmd
CTRL-W j
berfungsi dengan penghitung (buka jendela ke-n di bawah dari saat ini) solusi saya tidak.<C-W>
terlalu cepat jalan pintas (tidak hanya di banyak tempat di Vim, tetapi juga di bash) untuk kehilangan. Saya ingin tahu apa ikatan kunci lain yang dikonsumsi oleh terminal -<C-T>
? Paling tidak, saya akan melihat apakah ini dapat dikonfigurasi di terminal.Jawaban:
Anda dapat memetakan kembali
<C-w>
ke kombinasi lain, misalnya:Anda sekarang dapat menggunakan
<C-e>
dan itu akan bertindak seolah-olah Anda telah menekan<C-w>
.Ini akan menimpa
<C-e>
pemetaan default (gulir ke bawah). Vim sudah menggunakan setiap tombol pada keyboard, dan satu-satunya cara untuk mencegah ini adalah menggunakan kunci pemimpin, yang bertindak seperti "awalan":Kecuali Anda memetakan ulang
<Leader>
, sekarang Anda dapat menggunakan\w
(setelah satu sama lain). Saya sebenarnya lebih suka ini karena saya tidak suka kombinasi tombol CTRL +.Lihat Apa itu <Leader>? dan Bagaimana saya bisa mengetahui apa yang diatur ke <Leader>? Dan apakah mungkin untuk memetakan ulang <Leader>? .
sumber
Saya sebenarnya menggunakan
:wincmd
lebih sering daripada Ctrl+ Wkarena saya merasa lebih mudah untuk mengetik singkatan:winc
.Misalnya, setara dengan Ctrl+ W Ladalah
:winc l
.sumber
Saya telah menyiapkan remaps berikut di
.vimrc
:Sekarang saya dapat menggunakan
Ctrl+h
untuk pindah ke jendela kiri,Ctrl+l
untuk pindah ke jendela kanan, dll. Sepertinya cocok dengan navigasi normal Vim.sumber
nnoremap <cr> <c-w>w
, karena tombol kembali tidak banyak digunakan dalam mode normal. Maka mudah untuk melakukan siklus perpecahan.Untuk mengatasi perpecahan, saya menggunakan submode-plugin yang sebenarnya cukup nyaman: Ini memungkinkan Anda untuk membuat mode baru ("mode" seperti dalam mode normal, mode visual, mode insert, dll ...) di mana Anda menentukan binding kunci baru .
Dengan itu Anda tidak perlu menggunakan Ctrl+wlagi dan karena Anda berada dalam mode baru semua kunci bebas untuk mengikat: tidak ada lagi masalah seperti "Sialan saya tidak dapat menemukan kombinasi tombol yang sebagai penanda dan belum dipetakan "
Anda dapat menginstal plugin dengan pengelola plugin biasa, dan berikut adalah beberapa konfigurasi saya untuk memberi Anda beberapa inspirasi:
Saya membuat mode baru yang saya sebut
WindowsMode
di mana saya memanipulasi splits saya:Baris-baris ini berarti bahwa saya masuk dalam mode dengan Leaderkdan saya keluar dari mode dengan Leader: Setelah saya menekan Leaderksemua tombol yang saya tekan akan:
Setelah saya berada di
WindowsMode
garis ini, lakukan hjklnavigasi melalui perpecahan sepertiCtrl+whjklSaya menggunakan garis-garis ini untuk membagi windows dengan /dan !:
Dan qtutup split:
Pindahkan pemisahan dengan Ctrlhjkl:
Vim-submode memungkinkan untuk melakukan banyak hal kuat, lihat dokumen untuk detail lebih lanjut.
EDIT Pendekatan lain dari submode Window dijelaskan di sini . Saya pikir metode yang digunakan oleh penulis bahkan lebih dekat untuk menjawab pertanyaan: Di sini digunakan untuk membuat mode baru tetapi semua
<c-w>something
pemetaan tersedia dengan kunci yang sama di submode:Dengan cara ini semua pemetaan
<c-w>lowerCaseKey
,<c-w>upperCaseKey
,<c-w><c-Key>
dan pemetaan<c-w>=_+-<>
semuanya dapat diakses dalam modus jendela tanpa awalan<c-w>
sumber