В vim, как я могу отобразить "сохранить" (:w
) на ctrl - s.
Я пытаюсь "сопоставить" команду, но xterm зависает, когда я нажимаю ctrl - s.
Если я даю ctrl - v, ctrl - s, я вижу только ^
, а не ^S
.
В vim, как я могу отобразить "сохранить" (:w
) на ctrl - s.
Я пытаюсь "сопоставить" команду, но xterm зависает, когда я нажимаю ctrl - s.
Если я даю ctrl - v, ctrl - s, я вижу только ^
, а не ^S
.
Ctrl + S - общая команда для терминалов, чтобы остановить обновление, это был способ замедлить вывод, чтобы вы могли прочитать его на терминалах, у которых не было буфера прокрутки. Сначала выясните, можете ли вы настроить свой xterm для передачи Ctrl + S через приложение. Затем эти команды карт будут работать:
noremap <silent> <C-S> :update<CR>
vnoremap <silent> <C-S> <C-C>:update<CR>
inoremap <silent> <C-S> <C-O>:update<CR>
BTW: если Ctrl + S замерзает ваш терминал, введите Ctrl + Q, чтобы получить его снова.
В linux с VI вы хотите нажать Ctrl - S и сохранить этот документ. Это сработало для меня, поместил следующие три строки в ваш .vimrc файл. Этот файл должен быть расположен в вашем домашнем каталоге: /home/el/.vimrc
Если этого файла не существует, вы можете его создать.
:nmap <c-s> :w<CR>
:imap <c-s> <Esc>:w<CR>a
В первой строке указано: нажатие Ctrl - S внутри документа будет выполнять комбинацию клавиш :w <enter>
.
Во второй строке указано: нажатие Ctrl - S внутри документа, в то время как в режиме "вставки" выйдет в нормальный режим, выполните :w <enter
, затем нажмите a
, чтобы вернуться в режим вставки. Курсор может перемещаться во время этого события.
Вы можете заметить, что нажатие Ctrl - S выполняет "XOFF", который останавливает выполнение команд (если вы используете ssh).
Чтобы исправить это, поместите эти две команды в свой файл ~/.bash_profile
bind -r '\C-s'
stty -ixon
Что это значит, отключите привязку Ctrl - S и избавьтесь от любых экранных сообщений XOFF при нажатии Ctrl - S. Обратите внимание, что после внесения изменений в ваш .bash_profile вам нужно повторно запустить его с помощью команды "source.bash_profile" или logout/login.
Дополнительная информация: http://vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files
alias vim="stty stop '' -ixoff; vim"
Почему?, Что происходит? Смотрите здесь, но в основном для большинства терминалов ctrl + s уже используется для чего-то, поэтому этот псевдоним vim так, что перед запуском vim мы отключим это сопоставление.
nmap <c-s> :w<cr>
imap <c-s> <esc>:w<cr>a
Почему? Что происходит?. Это должно быть довольно очевидно, мы просто сопоставляем ctrl + s разные нажатия клавиш в зависимости от того, находимся ли мы в обычном режиме или в режиме вставки.
У меня есть post для этого.
ВИМ
# ~/.vimrc
nnoremap <c-s> :w<CR> # normal mode: save
inoremap <c-s> <Esc>:w<CR>l # insert mode: escape to normal and save
vnoremap <c-s> <Esc>:w<CR> # visual mode: escape to normal and save
zsh (если вы используете)
# ~/.zshrc
# enable control-s and control-q
stty start undef
stty stop undef
setopt noflowcontrol
bash (если вы используете)
# ~/.bash_profile or ~/.bashrc
# enable control-s and control-q
stty -ixon