Mój terminal nie pozwala mi pisać Ctrl+ W, ponieważ jest to skrót do zamykania karty terminalu.
Lubię pracować z podziałami, ale nie mogę znaleźć sposobu, aby to zrobić bez użycia C-W
. To zmusiło mnie do używania kart, bo mogę przełączać się między nimi gt
, gT
albo #gt
gdzie # to numer, ale uważam, że to mniej wygodne niż podziały jak widzę tylko zawartość jednego pliku naraz.
Nie mogę też użyć mouse=a
, ponieważ mój terminal tego nie obsługuje.
Jak mogę pracować z podziałami w Vimie bez dostępnej kombinacji Ctrl+ W?
key-bindings
vim-windows
split
Mateon1
źródło
źródło
wincmd
na przykład można zmapować::nmap wj :wincmd j<cr>
działa tak samo jakCTRL-W j
(przejdź do okna poniżej).:help wincmd
CTRL-W j
działa z licznikami (przejdź do n-tego okna poniżej z bieżącego) moje rozwiązanie nie działa.<C-W>
jest zbyt przydatnym skrótem (nie tylko w wielu miejscach w Vimie, ale także w bash), aby go przepuścić. Byłbym ciekawy, jakie inne powiązania klawiszy są używane przez terminal -<C-T>
? Przynajmniej sprawdziłbym, czy można je skonfigurować w terminalu.Odpowiedzi:
Możesz po prostu zmienić przypisanie
<C-w>
do innej kombinacji, na przykład:Możesz teraz użyć
<C-e>
i będzie działać tak, jakbyś nacisnął<C-w>
.Spowoduje to zastąpienie domyślnego
<C-e>
mapowania (przewiń w dół). Vim już używa każdego klawisza na klawiaturze, a jedynym sposobem, aby temu zapobiec, jest użycie klawisza wiodącego, który działa jak „przedrostek”:O ile nie odwzorowano ponownie
<Leader>
, możesz teraz używać\w
(po sobie). Właściwie wolę to, ponieważ nie lubię kombinacji klawiszy CTRL +.Zobacz Co to jest <Leader>? i jak mogę dowiedzieć się, do czego ustawiony jest <Leader>? Czy jest możliwe ponowne mapowanie <Leader>? .
źródło
Właściwie używam
:wincmd
częściej niż Ctrl+, Wponieważ łatwiej jest mi pisać skróty:winc
.Na przykład odpowiednikiem Ctrl+ W Ljest
:winc l
.źródło
Skonfigurowałem następujące remapy w moim
.vimrc
:Teraz mogę użyć,
Ctrl+h
aby przejść do lewego okna,Ctrl+l
aby przejść do prawego okna itp. Wygląda na to, że logicznie pasuje do normalnej nawigacji Vima.źródło
nnoremap <cr> <c-w>w
, ponieważ klawisz powrotu nie jest często używany w trybie normalnym. Następnie bez wysiłku można przejść przez podziały.Do radzenia sobie z podziałami używam wtyczki submode, która jest całkiem wygodna: pozwala ci stworzyć nowy tryb („tryb” jak w trybie normalnym, tryb wizualny, tryb wstawiania itp.), W którym definiujesz nowe powiązania klawiszy .
Dzięki temu nie musisz Ctrl+wjuż używać, a ponieważ jesteś w nowym trybie, wszystkie klucze mogą swobodnie wiązać: nigdy więcej problemów takich jak „Cholera, nie mogę znaleźć kombinacji klawiszy, która jako symbol i nie jest jeszcze zmapowana „
Możesz zainstalować wtyczkę za pomocą dowolnego zwykłego menedżera wtyczek, a oto niektóre z mojej konfiguracji, aby dać ci inspirację:
Utworzyłem nowy tryb, który wywołałem,
WindowsMode
w którym manipuluję swoimi podziałami:Te linie oznaczają, że wchodzę w tryb za pomocą Leaderki wychodzę z tego za pomocą Leader: Po naciśnięciu Leaderkwszystkich klawiszy, które uderzyłem:
Gdy będę już w
WindowsMode
tych liniach, hjklnawiguj między podziałami jakCtrl+whjklUżyłem tych linii do podzielenia okien za pomocą /i !:
I qzamknij podział:
Przenieś podziały za pomocą Ctrlhjkl:
Vim-submode pozwala robić wiele potężnych rzeczy, więcej informacji można znaleźć w dokumencie .
EDYCJA W tym miejscu opisano inne podejście do podmoduła Window . Myślę, że metoda zastosowana przez autora jest jeszcze bliższa odpowiedzi na pytanie: tutaj jest używana do stworzenia nowego trybu, ale wszystkie
<c-w>something
mapowania są dostępne z tymi samymi kluczami w submode:W ten sposób wszystkie mapowania
<c-w>lowerCaseKey
,<c-w>upperCaseKey
,<c-w><c-Key>
i mapowania<c-w>=_+-<>
są dostępne w trybie okienkowym bez prefiksu<c-w>
źródło