vi使用


 
vim     
: [email protected]

vim , , , . vim
, . ,
.

vim. vi unix/linux ,
. vi , . vim
. vim Vi IMproved , vi. (
Emacs , ). , vim
, , html , word .

vim , , , vim
, ( ): http://vcd.gro.clinux.org/

, , ,
.

:
xxx xxx
:xxx xxx
.
.

1.

/xxx(?xxx) xxx , / , ?
. xxx , .
, ,
:set ignorecase
, n , N .

*(#) ,
( ) . , n , N
.

g*(g#) , ,
.

gd ,
.

% , () [] {}

f(F)x , ( ) x .
:
;
,

2.
vi , , ,
. .

w(e) .
b .

0 .
^ .
$ .

H .
M .
L .
gg .
G .
c-f ( ctrl f ) page down.
c-b ( ctrl b , ) page up.

'' , , gd, *
, .

'. , .

`. , .

3. ,
vi y , d , p .
, .

yw .
dw .
y0 .
d0 .
y$ .
d$ .
yfa a .
dfa a .

:
yy .
dd .
D .

, , .

4.
vi ,
. :

5fx 5 x .

5w(e) .

5yy 5 .
5dd 5 .

y2fa a .

:12,24y 12 24 .
:12,y 12 .
:,24y 24 . .

5.
vi , , .
linux/unix ,
TAB , .
( windows ). vi , .

c-p(c-n) , vi ( )
, .
vim .

c-x-l , ,
.

c-x-f , . :
/usr/local/tom :
/usr/local/tomcat/

abbr . ,
. java System.out.println,
, . :
:abbr sprt System.out.println
sprt , System.
out.println

6.
vi , . .

:s/aa/bb/g aa aa bb
:s//<aa/>/bb/g aa bb, aa
:%s/aa/bb/g aa aa bb
:12,23s/aa/bb/g 12 23 aa aa bb
:12,23s/^/#/ 12 23 #
:%s= *$==
:g/^/s*$/d ( ) .

7.
vim .

:sp(:vsp) vim ( ) , .
vim6.0 , , , vim
,
, O , ?
.

:e vim , , .

c-w-w vim ?
.

:ls vim ,
:
1 %a "usevim.html" 162
2 # "xxxxxx.html" 0

:
1 , .
%a , % ,
#
"usevim.html" .
162 .

:b ( ) ( ) , ( )
:ls .

:set diff ,
:vsp filename
, ,
.

8.
vi abbr , . ,
<F1>-<F12> , . ~/.vimrc
(windows $VIM/_vimrc) , .

:nmap <F2> :nohls<cr>
:nmap <F9> <C-W>w
:imap <F9> <ESC><F9> <F9>
:nmap <F12> :%s= *$==<cr> .
:imap <F12> <ESC><F12>

:java : ( , java , ,
)
:nmap <F3> :comp javac<CR>:mak -d . %<CR>
javac java , .
javac.vim $VIM/compiler , javac.vim :
setlocal makeprg=javac
setlocal errorformat=%A%f:%l:/ %m,%-Z%p^,%-C%.%#

:nmap <F4> :comp ant<CR>:mak<CR>
ant java , . ,
vim compiler/ant.vim , .
build.xml , ant .

:nmap <F5> :cl<CR> .
:imap <F5> <ESC><F5>

:nmap <F6> :cc<CR> .
:imap <F6> <ESC><F6>

:nmap <F7> :cn<CR> .
:imap <F7> <ESC><F7>

:nmap <F8> :cp<CR> .
:imap <F8> <ESC><F8>

:nmap <F11> :JavaBrowser<cr>
, java ,
, , JCreator .
? . , , ctags .
:imap <F11> <ESC><F11>

9. TAB
TAB , .

<< tab.
>> tab.
5>> 5 tab.
:12,24> 12 14 tab.
:12,24>> 12 14 tab.

tab ? 8 , 4 , 2 .
tab , tab tab. , vim
. , .

:set shiftwidth=4 4 , .
:set sts=4 softtabstop 4. tab 4 .
:set tabstop=4 tab 4 , 8 .
:set expandtab tab , vim tab.

10. autocmd
, ;
. ~/.vimrc
. , , , .

:autocmd! .
autocmd FileType java source ~/.vim/files/java.vim
autocmd FileType java source ~/.vim/files/jcommenter.vim
java .
autocmd BufNewFile *.java 0r ~/.vim/files/skeletons/java.skel
java java.skel .
autocmd BufNewFile *.java normal gnp
java gnp ,
, java __date__ .

11.
vim.sf.net (script), .
:

jcommenter.vim javadoc .
JBrowser.vim . C, C++ Tlist

, checkstyle.vim , jad.vim
.class .

12.
~/.vimrc . ,
autocmd . :

set suffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc
vim , tab .

set nu
set ai
map Y y$ Y D , Y yy .

13.
, .

. .
:g/^/exec "s/^/".strpart(line(".")." ", 0, 4)
:runtime! syntax/2html.vim txt html,