聘我网

新概念招聘3.0

vi快捷键及配置备忘

vote up0vote downstar
拷贝1行:yy

拷贝3行:y3y

拷贝所有行:yG

粘贴:p

删除1行:dd(同时会复制到内存,其实是剪切操作)

删除3行:d3d

删除所有行: dG

撤销:u

重做:ctrl+r

从G回到之前的位置:'' (两下单引号)

移动到行首: 0

移动到匹配的括号: %

备注:

y -> yank
d -> delete
p -> paste

更新

替换: %s/pattern/replace_content/modifier   (注意?不需escape,但&需转)

仅替换光标所在行: s /pattern/replace_content/modifier

整块缩进: V,然后HJKL上下左右框选,最后shift + <>进行左右缩进

多行复制:V框选,然后按1次y即可

从当前位置之后插入: a,相当于i再右移一位。

更新2

贴个现在用的vimrc:

"======================================================
"Vim configuration file
"~/.vimrc
"Latees change: 2009.06.03
"==============
"Setings
"=============
set nocompatible
set history=400
set ruler
set showcmd
set number
set hlsearch
set incsearch
set expandtab
set noerrorbells
set novisualbell
set t_vb= "close visual bell
set tabstop=4
set shiftwidth=4
set nobackup
set nowritebackup
set smarttab
set smartindent
set autoindent
set cindent
set wrap
set wildmenu
set autoread
set cmdheight=3
set showtabline=2
set tabpagemax=20
set laststatus=2
set noswapfile
set cursorline
"set statusline=\ [File]\ %F%m%r%h\ %w\ \ %h\ \%=[Line]\ %l,%c\ %=\ %P
set laststatus=2 statusline=%f\ %m\ %{&fileencoding}
set whichwrap=b,s,<,>,[,],h,l "Allow move the cursor left/right to move to the previous/next line
set term=xterm
set listchars=tab:>-,trail:_
set list
"===============
"Mappings
"===============
:map <F5> :tabp<CR>
:map <F6> :tabn<CR>
:map <F10> :set number!<CR>
:imap <F5> <ESC>:tabp<CR>i
:imap <F6> <ESC>:tabn<CR>i
:vmap < <gv
:vmap > >gv
function! CurrectDir()
    let curdir = substitute(getcwd(), "", "", "g")
    return curdir
endfunction

syntax match Trail " +$"
highlight def link Trail Todo

其中:

  1. set listchars=tab:>-,trail:_使得空格tab能够高亮显示。
  2. vmap < <gv是对的连续缩进的支持。

添加对euc-jp的支持:

set enc=utf-8
set fenc=euc-jp
set fencs=euc-jp,utf-8,shift-jis
set termencoding=utf-8

将文件存为euc-jp格式:

:set fenc=euc-jp
:w

查看文件编码:

:set fenc

更新3

命令行:

  1. 一次打开多个文件(-p)

    vim -p string.c setproctitle.c test_setproctitle.c

  2. 移动tab

    :tabm n,其中n0开始计数

  3. 跳到第1tab: tabfirst

更新4

:w时执行某个脚本:

.vimrc加入以下一行

autocmd BufWritePost *.js :!perl ~/JSProduction.pl %:p 1 1

更新5

增加ctags支持

ctags -f tags --recurse --totals --exclude=tmpl --languages=Perl --langmap=Perl:+

然后

ctrl ]即可跳到定义处

ctrl t跳回

更新6

若没有配置快捷键,仍然可以用3 g t的方式跳到第3个tab

更新7

复制粘贴时对齐:

gg=G
 

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.