Jak mogę utworzyć stronę shift+spacja w Vimie?

Mam wpis w moim .vimrc, który sprawia, że strona w dół viewport, gdy trafiłem na spację. Wygląda tak:

map <Space> <PageDown>

Chcę utworzyć kolejny klawisz mapujący strony widoku w górę, gdy przytrzymasz shift i wciśniesz spację. Wypróbowałem następujące wpisy:

map <Shift><Space> <PageUp>
map <S-Space> <PageUp>
Ani pracy. Wie ktoś jak osiągnąć taką funkcjonalność?
Author: jerodsanto, 2008-11-11

4 answers

Nie możesz. Rozwiązanie CMS będzie działać dla gVim, ale nie w vim, ponieważ terminale nie mogą odróżnić i , ponieważ curses widzi je tak samo. Może to być możliwe w przyszłości, Jeśli Vim uzyska obsługę libtermkey, a twój terminal obsługuje odpowiednie sekwencje (xterm robi, jeśli jest poprawnie skonfigurowany; nic innego jeszcze nie robi).

 32
Author: Zathrus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-12 15:16:29

Jeśli używasz Vima wewnątrz iTerm2, możesz odwzorować shift-spację na ctrl + U, wysyłając klawisz hex 15. Oto zrzut ekranu:

Tutaj wpisz opis obrazka

Aby wyszukać kod szesnastkowy dla kombinacji ctrl+litera, na przykład ctrl+u, możesz wykonać następujące czynności:

  • w vim wejdź w tryb wstawiania
  • wciśnij ctrl + V potem ctrl + u potem ctrl + c potem ga
  • różne reprezentacje liczbowe będą drukowane na dole

Można zastosować ten pomysł do innych emulatorów terminali, które obsługa mapowania kluczy.

 12
Author: Bijou Trouvaille,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-14 06:36:24

Użyj tego:

map <Space> ^D   " Pagedown when press Space
map <S-Space> ^U " Page Up when press Shift Space

Aby poprawnie wyświetlić symbole ^D i ^u wystarczy nacisnąć Control-V Control-D i Control-V Control-U

 5
Author: CMS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-11 04:09:26

Dla OSX:

nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>
 3
Author: Steve McKinney,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-09 06:14:15