vim常用命令

转自http://tianshibaijia.iteye.com/blog/1342046

1. vim 中 ctrl+c 作为一个退出文件的快捷键来使用。


在一些操作软件中,比如 有道, ctrl+c 被屏幕划词(取词)占用, 导致在vim 中,鼠标选中一行后, vim 就会断掉 。
最简单的解决方法: 使用vim 的时候, 把取词和划词功能关掉。

2:vim 中使用table 可以自动补全命令,比如

:vs + table -- > vsplit
:e + tablle --> explore
:s + table --> sexplore


3 :vim 编辑区的折行

点击v进入visual模式,移动光标选择一定区域,输入 zf 就可将相应段落折行显示,zr 可展开,恢复原状

4 : 大小之间切换
在vistual mode 下, gu , 全部变为小写, gU 全部变为大写 ,只修改光标当前位置的大小写,用 shift+ (键盘左上角的1 左边的按键)

title:用Vi/Vim/gVim处理字符的大小写转换(暨命令gu gU的灵活
url: http://space.itpub.net/519536/viewspace-589227
note: 很好的页子

5 vim 中的自动提示

在 insert mode,from XX import yy, 输入 ctrl+p,可以在当前文件(以及一些相关文件)中自动匹配,做一些提示,在type 中还是很有用的。

6:使用快捷键进行页面翻动
上 j
下 k
左 h
右 l


ctrl + f 屏幕前翻一页 (常用) front
ctrl + b 屏幕后翻一页 (常用) back
ctrl + d 屏幕后翻半页down
ctrl + u 屏幕前翻半页up
# 除了使用快捷键,键盘上的pageup, pagedown 也是可以的。但正像vim 最早的“将双手从鼠标或其它位置解放出来”,如果双手位置不动,只要停留在主键盘区就可以完成翻页的效果,何乐而不为?

7:针对一个屏幕的光标移动
+ 光标移动到非空格的下一列
- 光标移动到非空格的上一列
n<space> 按下数字后再按空格,光标向右移动这一行的n 个字符。eg: 20<space> 光标向右移动20个字符


0 或者 <home> 数字0,移动到这一行的第一个字符 (常用)
& 或者 <end> 移动到这一行的最后一个字符

8 : 针对一个屏幕的光标移动:
H 光标移动到这个屏幕最上方的一行
L 光标移动到这个屏幕最下方的一行
M 光标移动到这个屏幕最中央的一行

9 针对一个文件中光标的移动:
G 光标移动到这个屏幕最下方的一行 (相对于 gg , 移动到文件最开始的一行)
:n 移动到第n行,比如 :20 移动到第20行。 可以结合 :set number :set nu :set nonum 一起使用
还有一个功能和 :n 一样的命令是 nG , 个人感觉不如 :n 快捷, 不是吗?呵呵
n<enter> 光标向下移动n 行 (真的非常有用,这也是我决心重新学习 viim commands 的最初动机)

10: 查找与替换:
/word 在光标之后查找一个名为word 的字符串 (我个人使用的时候,一般是 先使用 gg 移到文件头,然后 再使用 /word 查找)
?word 在光标之前查找一个名为word 的字符串
# 查找是一般是区分大小写的。如果想不区分大小写,可以使用进入order 模式 :set ingorecase , 或者直接在 .vimrc 中添加 set ignorecase

*(#) 当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)一个单词 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找


g*(g#) 与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而是匹配包含该单词的所有字符串 


% 查找与光标所在处相匹配的反括号, 包括 () [] { }
#如果括号嵌套较多的时候,还是很有用的


f(F)x 在光标所在行进行查找, 查找光标右(左)方第一个x字符。找到后: 输入 ; 表示继续往下找。输入 , 表示反方向查找

:n1,n2s/word1/word2/g 在第n1行与n2行之间查找word1 这个字符串,并将该字符串替换为 word2 (常用)
#note: 这里很像linxu 中的sed 命令, 比如 sed [-i] 's/word1/word2' xxx.py

:n1,n2s/word1/word2/gc 相比上一个命令增加了一个 c ,会在修改之前输入一个确认, (y/n/a/q/l/^E/^Y) y 表示替换,自动移动到下一个字符,n 表示不修改,自动移动到下一个字符,a 表示全部替换,

:q 表示放弃修改,修改完这一个后退出,


11: 删除,复制,粘贴

x 向后删除一个字符

X 向前删除一个字符
nx 数字加x, 向后删除n个字符。 比如 3x , 向后删除3 个字符
nX 类nx, 改为向前


D 或者 dd 将光标所在行剪切至剪切板,以后 输入 p, 就可以将其黏贴至文件中

dd or D 删除(剪切)光标所在的一整行
ndd 剪切光标所在列的向下n 列
d1G 删除(剪切)光标所在行到文件第一行的所有数据 (有用)
dG 删除光标所在行到文件最后一行的所有数据


yy 复制光标所在的行
nyy 数字加yy, 复制光标所在行的向下n 行。 比如 4yy, 复制光标向下的4 行


y1G 复制光标所在行到文件第一行的所有数据 (有用)
yG 复制光标所在行到文件最后一行的所有数据


p 将剪切的数据黏贴在光标的下一列(如果剪切板中是一行),下一个位置 (一个字符)
P 将剪切的数据黏贴在光标的上一列

J 将光标所在的列与下一列的数据整合成一列

u or U 恢复前一个动作 (我一直疑心u 和 U 表示的含义是一样的))
ctrl+r 重做

i 在当前光标所在列之前插入字符
I 在当前光标所在行首插入字符

a 在当前光标所在列之后插入字符
A 在当前光标所在行末插入字符

o 在光标所在列的下一列添加一行,并且进入可编辑模式
O 在光标所在列的上一列添加一行,并且进入可编辑模式

r 替换光标所知的那一个字符
R #note 看不出 R r 什么区别

esc 退出当前模式,回到一般模式

命令行模式:
:w 将编辑的数据写入硬盘中 (常用)
:w! 若文件属性为只读,强制写入该文件

:q 退出vim, 快捷方式为 shift + zz #note: 其实 :q 命令本身已经很快捷了,没有必要再去快了,再说也不安全, 不是吗?
:q! 若曾修改过文件,又不想保存,使用! 强制退出不保存文件,快捷方式 shift+zq , 建议如上

:wq! 强制保存后退出

:w filename 将当前文件保存为另外一个文件 (类似另存新文档)
:r filename 在编辑的文件中,读入另一个文件中的内容,即将filename这个文件内容加到光标所在行的后面 #BIG NOTE 非常炫,非常有用
:n1,n2 w filename 将当前文件的n1 到 n2 内容保存为 filename 这个文件

:set nu 显示行号,在每一行的前面显示该行的行号 nu 的全称为number
:set nonu 取消行号
:set nohlsearch 取消高亮显示

12: 针对一行中选取
进入visual 模式进行光标移动的选取自然可以。如果需要从某一个位置一直选取到行首或行尾, 可以使用:
将光标移到起始位置, 点击v进入visual 模式,^, 就可以选取至行首; 同样, $ 就可选取至行尾。

13: screen 的锁定和解锁
ctrl + s: vim 屏幕锁定
ctrl + q: vim 屏幕解锁

14: vim 用spaces 替换table 的几种方法
method 1:
在VIM中如何使得源码中的TAB全部用相应的空格替换?比如四空格.
在.vimrc中设置自动语法对齐后能不能设置用空格来补充前面的对齐位? [/quote]

:set ts=4
:set expandtab
:%retab
tabstop, table 键的占位符, table 的宽度为 4, 其实这个也可以调整,知道达到你需要的缩进效果
expandtab 扩展 table 键盘的功能
如果打开一个已存在的文件,并不会将所有的tab 替换为空格。如果希望这样的替换的话,可以使用 :retab


method 2:

使用 sed:
sed -i 's/\t/ /g' test.py

method 3:
自己的,也是最好的方法:
在文件中,使用这种形式,(table 和 space 都可可以直接输入,vim 可以识别)
:s/jia/luo/gc (严格来说,应该是这样的东西::%s/jia/luo/gc)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值