VIM学习笔记

来源:互联网 发布:ubuntu 自动休眠 编辑:程序博客网 时间:2024/05/02 06:10
VIM学习笔记
1.
       ^
       k
<h     l >
       j
       v
2. 删除字符用X键=DEL
3. 插入字符用i键=INSERT
I 光标位于第一个非空格处并插入
4. 从光标处删除 [number] d object OR d [number] object
number 命令执行的次数
object
w,删除单词,会删除光标以后空格以前的所有内容并删除所有空格。
e,删除单词,会删除光标以后空格以前的所有内容,不删除空格。
$,删除句子,会删除光标以后该行的所有内容。
如 10dw 或 d10w 删除10个单词及空格。
2d$ 或 d2$ 删除两行。
5. 删除整行 [number] dd
6. 撤销和重做
u 单次撤销(Undo)
U 还原整行的内容
CTRL+R 重做(Redo)
7. [num]p 将用d删除的单词或者行插入到当前位置或行以后。(put)
[num]P 插入当前行以前
8. r + 字符 替换光标所在位置的字符(replace)
9. 从光标处修改 [number] c object OR c [number] object
w 修改当前单词(change word)。
$ 修改该行当前位置以后的内容。
cc 改更整行
10.显示当前行 CTRL+g
11.跳转到指定行(默认为最后一行) [number] SHIFT+G
12.查找
向下查找 /keywords
向上查找 ?keywords
查找下一处 n
查找上一处 SHIFT+N
13.替换 在命令模式输入 [%][#,#]s/old/new[/g][/c]
s=substitute
g=global
c=confirm
% 全部替换
[#,#] 替换两行之间的内容,
/g 在一行中全部替换,否则仅替换该行第一处
/c 每次替换时需确认
14.% 查找当前位置对应的括号(),{},[]
15. 在命令模式下可以以!开头运行shell命令。
16. 文件另存为 :[#,#] w filename
使用[#,#]可存储两行之间的内容。
17. :r filename
插入文件内容到光标所在位置
18.插入一行并进入编辑模式(open a line)
o 在光标下方插入
O 在光标上方插入
19.移动光标到行尾 $
20.在当前光标后插入内容 a
在当前行后插入内容 A
21.覆盖修改当前光标后的内容 R 按backspace恢复原来的内容,按ESC结束
修改当前光标所在的一个字符 r
22.设置搜索参数
:set ic / :set noic 开启/关闭忽略大小写
:set hls / :set nohls 开启/关闭高亮显示
:nohls 仅关闭当前高亮显示
:set is / :set nois 开启/关闭增量查找(边输入边查找)
23. J 删除本行末的换行
24. 用数字+字母完成重复的任务,比如9k表示上移九行,3a!表示在当前位置后

插入三个感叹号
25. :e 文件名 打开另一个文件,:e! 恢复当前编辑的内容。
26. [num]w 向右移动num个单词到第一个字母上
[num]b 向左移动
27. [num]e 向右移动num个单词到最后一个字母上
[num]ge 向左移动
28. 26与27所述方法的大写表示,可以实现以空格为边界更大范围的移动。
29. ^ 移动到本行第一个字符
0 移动到行首
30. f[x] 移动到本行以x开头右边的下一个位置(find)
F[x] 向左寻找
; 查找下一处
, 反向查找下一处
31. gg 跳转到第一行
32. [num]% 移动到百分比位置
33. H (home) M (middle) L (last) 移动光标至当前窗口中的对应位置
34. zz 将本行位于屏幕的正中。
zb 移至底端
zt 移至顶端
35. * 向前搜索当前单词
# 向后搜索当前单词
36. 简单的正则表达式
^ 一行的首部(不能有空格) /^the 搜索行首的the
$ 一行的尾部 /the$ 搜索行末的the
. 任意字符 /c.m 可以是com,become
37. ''(两个单引号) 回到用行号跳行前的位置
CTRL+O 前一个位置
CTRL+I或TAB 后一个位置
38. m{a-zA-Z} 定义一个标记
'{a-z} 跳转至一个标记
:marks 查看标记列表
39. 一些快键命令
D = d$
C = c$
s = cl
S = cc
40. “.” 重复上一次的修改命令
41. 进入visual模式 v
CTRL+v 纵向选取
在visual模式时
o 转到选取光标的另一端
u 所有大写变小写
U 所有小写变大写
~ 大小写互换
42. y[num][w/e/$] 复制,用p粘贴
yy = Y 复制整行
43. 文本对像
aw 一个单词 (a word)
iw 不包括空格的单词(inner word)
is 不包括空格的句子 (inner sentence)
as 包括空格的句子 (a sentence)
44. 删除命令小节
x = del
X = backspace
D = d$
dw de
db dge
diw
daw
dgg
dG
至此VIM的使用部分全部结束。感觉VIM实在是太强大的一个工具,要很好的使用它还真需要一段时间。我发现UNIX下的工具还真是经典,比如VIM,LATEX,都是给真正搞计算机的人用的,而不是给不懂计算机的人用的。而windows是给不懂
计算机的人用的。


最近一直没怎么学,看了看JAVA,看到快速排序,打算自己编个程序,但是由于父亲回来,办公室的电脑不能再给我当作LINUX的服务器了,因此今天在家里的电脑上下载了gVIM 和J2SDK,准备在windows下学习了。
看了一篇用VIM编辑日常应用的文字的文章,学到了一些东西,总结如下:
GVIM 中的一些知识

:sy on
  表示(先确认在Normal模式,如不确认,请按几次Esc)你先按:进入命令行

模式,再输入sy on,再回车。
  补充说明:sy表示语法加亮,on当然是打开。:sy clear表示取消加亮。

:color murphy
使用murphy配色方案

:tabnew filename 在新标签中打开文件

& 可以在替换中代表搜索的内容。

宏功能 使用q+macroname 开始录制
录制结束后用q结束
播放时用num+@+macroname 开始播放

改变一段的大小写 g~~ guu gUU

ctrl+p 自动按上一段补全

加密文件 :X

一些小技巧

-注释多行
移 动光标到需要注释掉的第一行开头,然后按Ctrl-v(如果使用了VIM的mswin.vim,则Ctrl-v表示粘贴,这时需要用Ctrl-q代替)进 入Visual blockwise模式,这个模式是Visual mode的一种,相当于UltraEdit中的块选择。 然后按j选择上所有需要注释行的行首(看起来效果是选择了第一列),输入I//再按ESC就可以在每一行开头插入//了。