VIM에서 커서 뒤 또는 주변의 단어 삭제
이제 VIM
TextMate에서 전환 중 입니다. ^+W
INSERT 모드에서 매우 유용하다는 것을 알았 습니다. 그러나 커서 앞의 단어뿐만 아니라 커서 뒤 또는 주위의 단어도 삭제하고 싶습니다.
인터넷 검색을했지만 ^+W
커서를 찾기 전에 단어를 삭제하는 것이 유일한 방법이었습니다 .
당신이해야 할 일은 일련의 명령에 특정 키의 imap을 만드는 것입니다.이 경우 명령은 일반 모드로 떨어지고 현재 단어를 삭제 한 다음 다시 삽입합니다.
:imap <C-d> <C-[>diwi
일반 모드 :
daw : delete the word under the cursor
caw : delete the word under the cursor and put you in insert mode
난 그냥 생각 daw
daw - delete a word
아래는 일반 모드에서 작동합니다. Dan Olson의 대답에 동의합니다. 대부분의 삭제에서 아마도 일반 모드에 있어야합니다. 자세한 내용은 아래를 참조하십시오.
커서가 단어 안에있는 경우 : 단어
diw
에서 삭제하려면 (공백 제외)
daw
단어 주위를 삭제하려면 (다음 단어 앞에 공백 포함)
커서가 단어의 시작 부분에 있으면을 누릅니다 dw
.
예를 들어 2w를 앞으로 이동하기 위해 2w와 같이 일반적인 이동 숫자를 추가하여 곱할 수 있으므로 d2w는 두 단어를 삭제합니다.
삽입 모드 ^ w
Vim에서 움직임에 hjkl을 사용하는 아이디어는 집에 손을 대는 것이 더 생산적이라는 것입니다. 단어의 끝에 ^ w는 단어를 빠르게 삭제하는 데 효과적입니다. 삽입 모드로 들어가면 텍스트를 입력하고 화살표 키를 사용하여 홈 행 철학에 어긋나는 단어 중간에 끝납니다.
당신은 일반 모드에있어 단어를 변경하려면 간단히 사용할 수 있습니다 c
보다는 (변경)을 d
원하는 경우 완전히 단어를 변경하고, 언론에하지 않고 모드를 삽입 다시 입력 (삭제) i
다시 얻을 수 타이핑하기.
당신은 좋아합니까?
dw
삽입 모드에서 내장 방법을 사용 하는 것처럼 보이지는 않습니다 . 다른 답변 중 일부는 일반 모드에 적합하며 삽입 모드에서 기능을 추가하기 위해 사용자 지정 매핑을 만들 수 있다고 지적합니다.
솔직히 대부분의 삭제 작업은 보통 모드에서 수행해야합니다. ^ W는 알 필요가 없지만 정상 모드로 들어가서 더 강력한 삭제 명령을 내릴 수있는 esc보다 상황을 생각할 수 있는지 확실하지 않습니다.
Vim은 이런 식으로 여러 다른 편집기 (TextMate 포함)와 매우 다릅니다. 생산적으로 사용하는 경우 인서트 모드에서 많은 시간을 소비하지 않을 것입니다.
일반 모드에서 두 공백 사이의 모든 문자 를 삭제하려면
daW
한 단어 만 삭제하려면
daw
커서가 사용 diw
중인 전체 단어를 삭제하려면 커서가 있는 전체 단어를 삭제하고 삽입 모드로 전환하려면 ciw
전체 단어를 삭제하지 않고 현재 위치에서 삭제하려면dw/cw
불행히도 삽입 모드에는 그러한 명령이 없습니다. VIM에서 커서 아래의 전체 단어를 삭제하려면 viwd
NORMAL 모드에서 입력 하십시오. 어떤 수단 " V isual 블록 I nner W ORD D elete". W
구두점을 포함 하려면 대문자를 사용하십시오 .
단어를 삭제하는 방법에는 여러 가지가 있으므로이를 설명하겠습니다.
편집한다고 가정 :
foo-bar quux
커서가 'bar'의 'a'에있는 동안 명령을 호출하십시오.
foo-bquux # dw: letters then spaces right of cursor
foo-quux # daw: letters on both sides of cursor then spaces on the right
foo- quux # diw: letters on both sides of cursor
foo-bquux # dW: non-whitespace then spaces right of cursor
quux # daW: non-whitespace on both sides of cursor then spaces on the right
quux # diW: non-whitespace on both sides of cursor
For deleting a certain amount of characters before the cursor, you can use X. For deleting a certain number of words after the cursor, you can use dw (multiple words can be deleted using 3dw for 3 words for example). For deleting around the cursor in general, you can use daw.
In old vi, b
moves the cursor to the beginning of the word before cursor, w
moves the cursor to the beginning of the word after cursor, e
moves cursor at the end of the word after cursor and dw
deletes from the cursor to the end of the word.
If you type wbdw
, you delete the word around cursor, even if the cursor is at the beginning or at the end of the word. Note that whitespaces after a word are considerer to be part of the word to be deleted.
Not exactly sure about your usage of "before" and "after", but have you tried
dw
?
Edit: I guess you are looking for something to use in insert mode. Strangely enough, there is nothing to be found in the docs, ctrl-w seems to be all there is.
The accepted answer fails when trying to repeat deleting words, try this solution instead:
" delete current word, insert and normal modes
inoremap <C-BS> <C-O>b<C-O>dw
noremap <C-BS> bdw
It maps CTRL-BackSpace, also working in normal mode.
I made two mappings so I could get consistency in insert and out of insert mode.
:map <'Key of your choice'> caw
:imap <'Key of your choice'> <'Esc'> caw
I'd like to delete not only the word before cursor, but the word after or around cursor as well.
In that case the solution proposed by OP (i.e. using <c-w>
) can be combined with the accepted answer to give:
inoremap <c-d> <c-o>daw<c-w>
alternatively (shorter solution):
inoremap <c-d> <c-o>vawobd
Sample input:
word1 word2 word3 word4
^------------- Cursor location
Output:
word1 word4
참고URL : https://stackoverflow.com/questions/833838/delete-word-after-or-around-cursor-in-vim
'IT story' 카테고리의 다른 글
URI, Android KitKat 새로운 스토리지 액세스 프레임 워크에서 실제 경로 확보 (0) | 2020.05.10 |
---|---|
RegEx : 따옴표 사이의 값 잡기 (0) | 2020.05.10 |
Xcode에서 x86_64 아키텍처에 대한 중복 기호 (0) | 2020.05.10 |
TestFlight는 어떻게합니까? (0) | 2020.05.10 |
Google +1이 마우스 움직임을 기록하는 이유는 무엇입니까? (0) | 2020.05.10 |