您的位置:首页 > 运维架构 > Linux

vim小技巧

2015-01-16 00:05 211 查看
有几个很实用的vim技巧,不是很常用,但是很实用。当需要的时候,可能一句命令就完事。

:ab a b

当输入a时,结束后立即变成b,这个可以用于缩写,很有用
:w !sudo tee %

当编辑一个文件保存时,突然没了权限,这个就是sudo
vimdiff afile bfile

用vim比较两个文件
:%!xxd 把文件变成十六进制。当观察bin文件或其它需要时实用

:%!xxd -r 恢复原来状态
zz,zb,zt将光标处放到屏幕的中间,上下;HML注意这三个大写的定位是移动光标
:TOhtml

把当前文本变居html,这个神奇
ctrl+o/ctrl+i 在改动的地方跳转,可跨越文件跳转,很实用。
dt 标记

删除光标和标记间的内容
di{ / di" / di[可用来删除括号或者引号间的内容
:earlier 1m 回到1m之前的状态

:later相反
ggVGg? 相当于不想让人看到你的内容

将文件内容编码成另外一个模式,恢复是u
插入模式下ctrl+r = 再输入一个数学表达式,就会在原地插入所计算的值
vim +n file 打开第n行,vim + file最后一行
vim +/pattern file直接定位到pattern处
在插入模式下alt+j/k/l/h来移动光标,这个在zsh中好像已经有了,不过可这样
noremap! <M-j> <Down>    ------------- 在插入模式下,用 ALT+j 来移动

noremap! <M-k> <Up>

noremap! <M-h> <left>

noremap! <M-l> <Right>


m<标记名称>     定义标记。标记名称为一个字符

'(单引号)<标记名称>     移到光标到<标记名称>行的首字符。

`(反引号) <标记名称>   移动光标到<标记名称>所标记的字符。

`` 返回到移动前的上一标记或上下文的确切位置

'' 返回到上一标记或上下文所在行的开始。

n% 到文章的百分之行数位置
ctrl+y/e克隆上下行内容
~大小写转换
宏操作

qa

q

@q
插入模式下ctrl+r+寄存器名,则输入寄存器内容
:e!放弃本次任何修改
:new新建一个窗口;:split将当前文件分成两栏;:vnew, :vsplit
:tabnew, :tabe file新标签,:tabc关闭当前,:tabn下一个,:tabp上一个
xp,ddp交换字符和行
:%s/^M//g替换文件末尾的^M, ctrl+v ctrl+M得到^M
u和ctrl+r撤销和恢复
替换中:%s/a/b/gc后面的c表示询问
gu/gU/guU
:r!cmd插入命令输出
:Ex开启目录

:Sex分隔窗口
Ctrl+a/x数字加减
:make执行makefile :cw查看出错 :cn :cp查看出错地方
:g/^/m0/行反转
map imap vmap nmap
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux vim