"Vim"의 두 판 사이의 차이
ph
잔글 (→vim mode in tmux) |
|||
(같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
106번째 줄: | 106번째 줄: | ||
[http://vimdoc.sourceforge.net/htmldoc/pattern.html#/magic vimdoc]참고. | [http://vimdoc.sourceforge.net/htmldoc/pattern.html#/magic vimdoc]참고. | ||
훨씬 깔끔해진다. | 훨씬 깔끔해진다. | ||
+ | |||
+ | ==vim mode in tmux== | ||
+ | set-window-option -g mode-keys vi | ||
+ | |||
+ | 그냥 enter로 빠져나오고 space로 selection시작. 움직임은 vim과 동일 | ||
+ | [https://sanctum.geek.nz/arabesque/vi-mode-in-tmux/ ref] |
2020년 3월 3일 (화) 18:22 기준 최신판
목차
- 1 disable focus-in, focus-out event in terminal
- 2 paste large text to a file
- 3 Insert line numbers
- 4 Make Vim show ALL white spaces as a character
- 5 autocomplete에 dash포함
- 6 Auto completion in command line mode
- 7 Display line numbers
- 8 이미 읽은 파일의 인코딩 변경
- 9 tab으로 편집
- 10 temporary ic when searching
- 11 Gnu indent
- 12 Copy using t command
- 13 Change tab(\t) to space
- 14 Reverse all lines
- 15 non-greedy match
- 16 Match except last parenthesis
- 17 Regexp with magic
- 18 vim mode in tmux
disable focus-in, focus-out event in terminal
printf "\e[?1004l"
paste large text to a file
Do not use vim. Use here document
.[3]
cat << END > targetfile ... > END
Insert line numbers
:%s/^/\=printf('%-4d', line('.’))
\=
is the result of evaluating the following expression
%-4d
is a left-aligned decimal number(%4d
is right-aligned)
or
:%!nl -ba
Make Vim show ALL white spaces as a character
:set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣ :set list [4]
아래와 같이 하면 탭등 구분은 안되지만 일단 공백이 다른 색으로 보임.
:syntax on :set syntax=whitespace [5]
autocomplete에 dash포함
:set lisp [6]
다른 방법으로는,
:set iskeyword+=\- [7]
이용
Auto completion in command line mode
:help wildmode
I am using
:set wildemode=list:longest
Display line numbers
:highlight LineNr term=bold cterm=NONE ctermfg=DarkGrey ctermbg=NONE gui=NONE guifg=DarkGrey guibg=NONE
이미 읽은 파일의 인코딩 변경
:e ++enc=euc-kr
tab으로 편집
:help tabpage :help tabe
ref. :Te
temporary ic when searching
insert '\c'(or '\C') at the end. (eg: /example\c will match with 'Example').
ref. :help pattern
Gnu indent
function! GnuIndent() setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1,//0 setlocal shiftwidth=2 setlocal tabstop=8 endfunction au FileType c,cpp,php call GnuIndent()
Copy using t command
:81,91t.<enter>
Copy the current lines to your present cursor location. [10]
Change tab(\t) to space
:set expandtab
:retab
Reverse all lines
:g/^/m0
g: reg match인 모든 곳에서 명령실행
혹은 다음과 같이 한다.
:%!tac
non-greedy match
.\{-}
Match except last parenthesis
:%s/\(.\{-}\)\( \?([^)]*)\)\?$/[[\1]]\2/
‘optional한 마지막 괄호’만 빼고 다른 모든것을 매치하고 싶었는데, stackoverflow에 물어보니 ‘닫는괄호를 제외한 나머지’와 match하는게 핵심 아이디어 였음. 즉, 괄호 match에 다음을 쓰는 것.
([^)]*)[14]
magic을 이용한 방법[15]이 더 깔끔해보이긴 함
/\v(^\w+(\s\w+)?) :%s,,[[\1]],g
Regexp with magic
\v
vimdoc참고. 훨씬 깔끔해진다.
vim mode in tmux
set-window-option -g mode-keys vi
그냥 enter로 빠져나오고 space로 selection시작. 움직임은 vim과 동일 ref