"Vim"의 두 판 사이의 차이
ph
1번째 줄: | 1번째 줄: | ||
+ | ==paste large text to a file== | ||
+ | Do not use vim. Use <code>here document</code>.[https://stackoverflow.com/a/2954835/766330] | ||
+ | cat << END > targetfile | ||
+ | ... | ||
+ | > END | ||
+ | |||
==Insert line numbers== | ==Insert line numbers== | ||
:%s/^/\=printf('%-4d', line('.’)) | :%s/^/\=printf('%-4d', line('.’)) |
2019년 1월 14일 (월) 21:17 판
목차
- 1 paste large text to a file
- 2 Insert line numbers
- 3 Make Vim show ALL white spaces as a character
- 4 autocomplete에 dash포함
- 5 Auto completion in command line mode
- 6 Display line numbers
- 7 이미 읽은 파일의 인코딩 변경
- 8 tab으로 편집
- 9 temporary ic when searching
- 10 Gnu indent
- 11 Copy using t command
- 12 Change tab(\t) to space
- 13 Reverse all lines
- 14 non-greedy match
- 15 Match except last parenthesis
- 16 Regexp with magic
paste large text to a file
Do not use vim. Use here document
.[1]
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 [2]
아래와 같이 하면 탭등 구분은 안되지만 일단 공백이 다른 색으로 보임.
:syntax on :set syntax=whitespace [3]
autocomplete에 dash포함
:set lisp [4]
다른 방법으로는,
:set iskeyword+=\- [5]
이용
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. [8]
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에 다음을 쓰는 것.
([^)]*)[12]
magic을 이용한 방법[13]이 더 깔끔해보이긴 함
/\v(^\w+(\s\w+)?) :%s,,[[\1]],g
Regexp with magic
\v
vimdoc참고. 훨씬 깔끔해진다.