Program Club

Vim에서 "저장"을 ctrl-s에 매핑하는 방법

proclub 2020. 12. 2. 22:09
반응형

Vim에서 "저장"을 ctrl-s에 매핑하는 방법


vim에서 "save"( :w)를 ctrl- s.

명령을 "매핑"하려고하는데 ctrl-를 누르면 xterm이 멈 춥니 다 s.

내가 ctrl- v, ctrl-를 주면 s여전히 나는 ^, 아니라 ^S.


Ctrl+ S는 업데이트를 중지하는 터미널에 대한 일반적인 명령이며, 스크롤 백 버퍼가없는 터미널에서 읽을 수 있도록 출력을 늦추는 방법이었습니다. 먼저 응용 프로그램에 + 를 전달 하도록 xterm구성 할 수 있는지 확인 하십시오 . 그러면 다음지도 명령이 작동합니다.CtrlS

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다시 가야합니다.


VI가있는 Linux에서는 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


Mac OSX 터미널 + zsh?

.zprofile에서

alias vim="stty stop '' -ixoff; vim"

왜?, 무슨 일이야? 여기를 참조하십시오 . 그러나 기본적으로 대부분의 터미널에서 ctrl+s 는 이미 무언가에 사용되었으므로이 별칭은 vim이므로 vim을 실행하기 전에 해당 매핑을 해제합니다.

.vimrc에서

nmap <c-s> :w<cr>
imap <c-s> <esc>:w<cr>a

왜? 무슨 일이야? 이것은 우리가 일반 모드인지 삽입 모드인지에 따라 ctrl+s 를 다른 키 입력에 매핑 하는 것입니다.


이것에 대한 게시물 이 있습니다.

정력

# ~/.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

앞서 언급 한 설정을 시도 할 때마다 CTRL + S를 통해 INSERT 모드에서 저장할 수 없습니다. 그놈 터미널 버전 3.26.2에서 실행중인 VIM에서 CTRL + S를 누를 때마다

^S

거기 누구든지 그것에 대한 수정이 있습니까? 감사.

참고 URL : https://stackoverflow.com/questions/3446320/in-vim-how-to-map-save-to-ctrl-s

반응형