vim快捷键设置

:imap <F5> <Esc>:r !echo \%date\% \%time:~0,8\%<CR>kJa<Esc>
:imap <F6> <Esc>24i=<Esc><CR>

 

#在选中行未添加指定内容

1. Ctrl+Q
2. j、k等命令移动并选中需要修改的行
3. 输入$
4. A
5. 输入要在行未添加的内容
6. 按Esc

 

#Vim中删除只带空格的行

:%s/^\+\n//g

 

#vim按行排序并删除重复的行

:sort u

 

#如果你想在当前的每一行文字前面增加「序号. 」,那么执行如下命令:
:let i=1 | g /^/ s//\=i.". "/ | let i+=1

#通过vim替换文件中的所有行的2250,文件中第一行的2250替换成"2250 + 1",第二行替换成"2250 + 2"
:let i=2250 | g /2250/ s/2250/\=i.""/g | let i+=1

:help :s 可查看 s/aaa/bbb/的用法 [1]
{string} 以 "\=" 开始时,它被作为表达式来执行

 

#vim格式化代码 [1]

gg=G

#查看加载的插件
:scriptnames

#vim寄存器
复制选中的内容到系统剪贴板
"+y
复制选中的内容到系统剪贴板
"+p
+表示系统剪贴板寄存器
"表示使用寄存器

#设置在输入模式下按F7键把当前文件的路径输出到光标所在处 [1]
function GetCurFilePath()
    let cur_dir=getcwd()
    let cur_file_name=getreg('%')
    let dir_filename=cur_dir."\\".cur_file_name
    call setreg('+',dir_filename)
endfunction

:imap <F7> <Esc>:call GetCurFilePath()<CR>"+pa
nnoremap <silent> <F9> : call GetCurFilePath()<cr>

#vim中的g命令 [1]
g命令的格式为:
[range]global/{pattern}/{command}

:g/module/co 1                         #搜索文件中包含"module"的行,并将中些行粘贴到第一行后[存在的问题:这些行和搜索顺序相反]
:g/^/m 0                               #倒序文件行(即unix下的tac命令)

#Collecting all lines that match a pattern in a register [1]
We can clear the contents of named register ‘a’ by running the command: qaq. The qa command instructs Vim to start recording keystrokes into register ‘a’, then the final q stops the macro recording. No keystrokes were recorded, so the register ends up blank.

Now we can use this Ex command:

:global/TODO/yank A


#vim折叠和展开
marker折叠方式,用标计来标识代码的折叠 [1]

zf 折叠
zo 展开当前折叠

zr 展开所有折叠
zm 折叠所有(被标计的折叠)

zd 删除一个折叠

#vim分屏操作 [1]
:split     上下分屏

Ctrl+W o   上下分屏
Ctrl+W v   垂直分屏

Ctrl+W h, j, k, l   各个屏间切换

:res       放大当前窗口,缩小其他窗口 [1]
:res 10    将当前窗口设置为10行,后面可以设置行数

Ctrl+W =   将窗口等分


#vim文件浏览器
netrw

#vim在tab间切换
标准模式下:gt , gT 可以直接在tab之间切换。[1] [2]

#vim中用gf后,怎样跳回来?【打开当前文件中引用的文件】
使用下面几种方法:
1. 使用"ctrl+^"
2. 使用":buffers"看一下是在处在第几个buffer上面,回车键后,如想跳到"buffer1",直接使用":b1",回车键后即可跳到buffer1上面

#自动折行 是把长的一行用多行显示 , 不在文件里加换行符用 [1]
:set wrap 设置自动折行
:set nowrap 设置不自动折行

#将文本行倒序排列[1]
:g/^/m0
原理是从第一行开始,匹配每一行,然后执行mo(move)操作移动到第0行。如此处理每一行,直到文本末行。

posted on 2013-06-11 00:57  dream_bccb  阅读(579)  评论(0)    收藏  举报