随手记-基础的vim命令

  • 基础的

:e filename 打开文件

:w  保存文件

:q 退出

:x  写文件并退出(等价于wq)

:saveas filename 另存为filename

. 重复上一次操作

.5 重复5次上一次操作

  •  移动光标

k 向上移动光标

j 向下移动光标

h 向左移动光标

l 向右移动光标

e 移动到行尾

b 移动到单词首

o 移动到行首

G 移动到最后一行

gg 移动到到第一行

L 移动到屏幕最底端

:59 移动到59行

20| 移动到第20列

% 移动到匹配的符合(如中括号、大括号)

[[ 移动到函数头部

[{  移动到块前部

  • 剪切、复制、黏贴

y 复制选中的块(v进入选择块的模式)

yy 复制当前行

y$ 从当前位置复制到行未

p 黏贴

dd 删除当前行

D 删除当前字符

  •  查找

/word  从头到尾查找word

?word 从尾到头查找word

* 查找光标所在的单词

/\cstring  忽略大小写查找string

/jo[ha]n 全文查找john或 joan

/\<the 搜索以the开头的行

/the\> 搜索以the结尾的行

/\<the\> 搜索只有the的行

/fred\|joe 搜索fred和joe

/\<\d\d\d\d\> 搜索只有4个数字的行

/^\n\{3} 搜索3行空白行

:bufdo /str/ 在所有打开的文件中查找str

:bufdo %s/something/somethingelse/g 在所有打开的文件中用somethingelse替换something

  •  替换

:%s/old/new/g 在全文中用new替换old

:%s/old/new/gi   用new替换old,忽略大小写

%s/old/new/gc 在全文中替换old,替换时需要确认才生效

:2,35s/old/new/gc 从第2行到35行替换

:5,$s/old/new/g 从第5行到文章末尾替换

:%s/^/hello/g 从文章开头替换

:%s/$/Harry/g 最后一行替换

:%s/*$//g 删除空白行

:g/string/d 删除含有string的行

:v/string/d 删除不含string 的行

:s/old/new 在当前行替换old,只替换一次

:s/old/new/g  在当前行替换所有的old

:%s/^M//g 删除DOS行

:%s#<[^>]\+>##g 删除html标签

:%s/^\(.*\)\n\1$/\1/  删除出现2次的行

ggvGg?  全文进行Rot13加密

  • 转换

Vu 转换当前行为小写

VU 转换当前行大写

2Vu 转换从当前行开始的2行为小写

g~~  反转当前行的大小写

vEU 转换当前行的大写

vE~ 反转当前行的大小写

ggguG 全文转为小写

gggUG 全文转为大写

:set ignorecase 忽略大小写

:set smartcase 不忽略大小写

:%s/\<./\u&/g 设置第一个单词首写字母为大写

  • 读写文件

:1,10 w outfile 将1到10行写入到outfile

:1,10 w >> outfile 将1到10行追加到outfile

:r infile  插入infile的内容

:23r infile 插入23行infile的内容

  • 文件浏览

:Sex 打开文件浏览器

:browse e 打开文件浏览器

:ls 列出当前文件夹里的所有文件

:cd .. 将父目录调整到上一个目录

:args 查看当前打开的文件名

:args *.php 查看当前打开的所有php文件

gf 打开当前光标的单词的文件

  • 执行shell

:!pwd 执行pwd命令(!+ sh命令)

  • 对齐

:%!fmt 重排所有行,使得所有当前所有行对齐

gg=G 全文格式化

!}fmt  从当前位置重排所有行,使得所有当前所有行对齐

5!!fmt 从当前位置重排5行,使得当前所有行对齐

  • tabs/窗口

:tabnew 创建一个新文件,tab

gt 跳到下一个选项卡

:tabfirst 展示第一个选项卡

:tablast 展示最后一个选项卡

:tabm n(position) 跳到n个选项卡

:tabdo %s/foo/bar/g 在所有的选项卡中,执行%s/foo/bar/g 命令

:tab ball 保存所有

:new abc.txt 新建一个abc.txt选项卡

  • 分隔窗口

:e filename 编辑filename文件在当前窗口

:split filename 分隔窗口,打开filename文件

ctrl-w-w 移动光标到上一个窗口

:vsplit file 垂直分隔文件

:sveiw file 水平分隔文件

:hide 关闭当前窗口

:nly 除了当前文件,关闭所有窗口

:b 2 打开2号文件

  • 文本缩进

:set autoindet 自动缩进

:set smartindet 不自动缩进

:set shifwidth=4 设置缩进为4个空格

>> 右缩进

<< 左缩进

== 缩进当前行

v== 缩进选中行

11== 11行自动缩进

=% 缩进代码的括号

gg=G 全文缩进

  • 语法高亮

:syntax on 语法高亮打开

:syntax off 语法高亮关闭

:set syntax=cpp 设置当前语法环境为c++

 

 

参考网站

http://www.catswhocode.com/blog/130-essential-vim-commands

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值