Klawisz Delete nie działa w vimie na iTerm2

16

Po pierwsze, wpisałem coś w trybie wstawiania, na przykład

Hello

Na tym etapie, jeśli nie wychodzę z trybu wstawiania, deletedziała i mogę usunąć całe słowo, jeśli chcę.

Jeśli wyjdę z trybu wstawiania i ponownie otworzę tryb wstawiania, Hellonie można tego usunąć delete. Ale nowo wpisaną treść można usunąć.

Zmieniłem nazwę mojego .vimrc, problem nadal występuje.

I zrobiłem test na zdalnym serwerze za pośrednictwem iterm, nie napotkałem tego samego problemu.

Co może być przyczyną tego problemu? Jak to naprawić?

Zen
źródło
Przez „usuń” masz na myśli backspace? Możesz usunąć całe słowa w trybie wstawiania Ctrl-W, spróbuj tego. Jeśli to nic nie robi, coś jest nie tak z twoim vimem. Używam iTerm 2 i nigdy nie miałem takich problemów.
Oarfish
Tak, mogę użyć dwlub dw+ shiftw trybie normalnym, aby usunąć słowa. Ale + backspacei ctrl+ wnie działają w drugiej sytuacji, o której wspomniałem powyżej.
Zen,
Ale możesz użyć backspace w normalnym wierszu poleceń poza vimem? Bardzo dziwne.
Oarfish
@oarfish, tak, mogę, aw zdalnym serwerze vim nie mam takiego problemu, wszystko dzieje się nagle. Na razie nie mam pojęcia.
Zen
Jaką masz wersję vima? Mam vim 7.4.481 i nie mogę odtworzyć problemu.
jan.h

Odpowiedzi:

16

Jest to funkcja vima, chociaż IIRC nie byłaby domyślnie włączona.

backspaceJest to ustawienie w vim, i można ustawić trzy różne parametry: indent, eol, istart

Jeśli uruchomisz :help backspace, powie ci:

Influences the working of `<BS>`, `<Del>`, `CTRL-W` and `CTRL-U` in Insert
mode.  This is a list of items, separated by commas.  Each item allows
a way to backspace over something:

value     effect
indent    allow backspacing over autoindent
eol       allow backspacing over line breaks (join lines)
start     allow backspacing over the start of insert; CTRL-W and CTRL-U
          stop once at the start of insert.

Ten, który nie jest dla ciebie ustawiony, to start.

Jeśli dodasz set backspace=indent,eol,startdo swojego .vimrc, będziesz mógł cofać się nad wszystkim w trybie wstawiania.

Jay Thompson
źródło
„funkcja” ... Z jakiegoś powodu widzę, że jest ona domyślnie włączona w świeżym MacOS 10.13 z najnowszą instalacją Vima. To rozwiązanie nadal rozwiązuje problem.
Taylor Edmiston,
9

Miałem to również, domyślne wartości przetwarzania tekstu naturalnego były dla mnie złe.

  • MacBook Pro (15-calowy, 2018)
  • 10.14.3 (Mojave)
  • Iterm2 3.2.7

Przejdź do Preferences > Profiles > Keysi wczytaj domyślne ustawienie wstępne Natural Text Editingi usuń wszystkie wpisy, których dotyczą deletei deletezachowania. Następnie działa zgodnie z oczekiwaniami.

Salyangoz
źródło
1
To samo, tyle że właśnie usunąłem wpisy dotyczące „Del->”, ale nie dodałem wiązania „Sends ^ H”. Potem działało zgodnie z oczekiwaniami.
DagW,
@DagW potwierdzone, wiązanie ^ H nie jest konieczne.
Salyangoz
2
Musiałem kopać zbyt głęboko w niewłaściwe posty, aby znaleźć to jako właściwą odpowiedź, wielkie dzięki!
RecuencoJones
1
Miałem problem z moim Tmux i Iterm2 przez długi czas, nigdy nie znajdę rozwiązania, dopóki nie znalazłem twojego postu tutaj.
1234
1
Tak! chodzi o konfigurację iterm, a nie samą vim.
Rodrirokr