У vim, як я можу зіставити "save" ( :w) на ctrl- s.
Я намагаюся "зіставити" команду, але xterm зависає, коли я натискаю ctrl- s.
Якщо я даю ctrl- v, ctrl- sвсе одно я бачу лише а ^, ні ^S.
У vim, як я можу зіставити "save" ( :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>
ДО: якщо Ctrl+ Sзаморожує ваш термінал, введіть Ctrl+, Qщоб знову запустити.
<C-W>як правило , використовується для поділу і віконних команд вікна
У 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у документі, перебуваючи в режимі "вставки", вийде нормальний режим, виконайте a :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' або вийти / увійти.
Докладніше: http://vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files
imapкоманди? Здається, вам потрібно лише imap <c-s> <Esc>:w<CR>a. Дякую.
vim
# ~/.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
vnoremap <c-s> <Esc>:w<CR> # visual mode: escape to normal and save?
alias vim="stty stop '' -ixoff; vim"
Чому ?, що відбувається? Дивіться тут , але в основному для більшості терміналів ctrl+s для чогось уже використовується, тому цей псевдонім vim, так що перед запуском vim ми вимикаємо це відображення.
nmap <c-s> :w<cr>
imap <c-s> <esc>:w<cr>a
Чому? Що відбувається? Це повинно бути досить очевидно, ми просто призначаємо ctrl+s різним натисканням клавіш залежно від того, перебуваємо ми в звичайному режимі чи режимі вставки.