vim学习基础
基本操作
(不知道就 :help 操作名)
首先用vim打开文件:(vim区分大小写)
在shell(windows就是cmd)gvim filename 或 vim filename(多个g就是GUI的G)
我一般是直接打开vim然后 :cd D:\ 到d盘然后:E显示文件列表,:e! filename 编辑自己的文件
操作模式:
移动光标:用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。向上移动9行,
这可以用"kkkkkkkkk"或"9k"来完成
向上移动9行: kkkkkkkkk=9k(参数+操作符)
操作模式:(到这可以用vim写东西了)
u撤销命令,ctrl+r是重做
dd删除当前行,放入register
D删除光标至最后=d$
d^删除光标之前
操作模式—>插入模式:
a 光标下一个字符后输入
i 当前光标位置输入
o 进入插入模式,当前行下面插入新行输入
O 进入插入模式,当前行上面插入新行输入
cc删除本行,进入插入模式(光标移动到格式对齐位置)
C删除光标到该行结尾,进入插入模式
s 删除当前字符,进入插入模式
S删除当前行,进入插入模式
注:以上的删除操作都是将删除的文本放到了register中。你可以试试p看看你在register中都放了啥吧
*************************************************************************************************
x 删除当前光标下字符存入register,X删除光标前一个字符
(和s不同的是,x不进入插入模式)
J 删除换行符(就是\n)
退出输入模式Esc进入操作模式
内容写入文件:
在操作模式下输入冒号 “:”后面跟着命令,
eg. :w name.txt
:w 为存储正在编辑的文件, 如果不带扩展名就会保存当前编辑文件
(以上操作vim不让就在操作符后面加!)
:q退出当前窗口,后面还有ZZ, :close
-----------------------------------------------------------------------------------------------------------------
选择模式:
(觉得选择模式类就是在操作模式上可以用光标选择自己要编辑的字符串而已)
在操作模式按v
h , j, k, l 移动光标选择内容
y 复制内容
p 粘贴内容
-----------------------------------------------------------------------------------------------------------
交换模式:
R开始替换,类似insert键
r在光标下替换字符
u, U改变当前光标字符大小写(可视模式(v)下)
---------------------------------------------------------------------------------------------------------------
文件操作
修改当前操作目录
:cd path_name (:cd D: X, :cd D:\ √)
新建文件:
:new file_name.后缀
新建后用 :w 保存,否则直接关闭不会产生。如果当前已经有正在编辑的文件则在打开以后分裂窗口
放弃编辑:
丢弃所有的修改并退出:q!
解释:这个命令由3部分组成:冒号(:),用以进入冒号命令行模式;q命令,告诉编辑器退出;最后是强制命令执行的修饰符(.!)
用":e!"命令放弃所有修改并重新载入该文件的原始内容
打开文件:
第一种:
:e fileName 可以带文件路径,可使用tab键进行文件夹名称和文件名称的自动补全,
没事多按几下
第二种:
vi filename1 filename2
可以同时打开多个文件
只打开文件时,操作结果和":"命令相同
第三种:
:split filename
会将当前窗体分为多个区域,在新的区域打开文件
第四种:
可以在其他操作命令前加"tab"
eg. tabnew文件名, :tabe 文件名
文件间的切换:
第一种:"ctrl+wwww"(w安的久一点)或ctrl+6用来切换当前区域编辑的前一个文档
第二种: :ls然后 :e#编号
先使用ls显示已经打开文件列表和编号
然后用:e#编号 切换需要编辑的而文件
在:ls中各文件的编号在为离开vim前是不会改变的
----------------------------------------------------------------------------------------------------------------
移动
以Word为单位的光标移动:
"w"命令可以将光标向前移动一个word的首字符
3w就是移动3个word
"b"命令则将光标向后移动到前一个word的首字符上
"e"命令会将光标移动到下一个word的最后一个字符
"ge",它将光标移动到前一个word的最后一个字符上
移动到行首或行尾:
"$"命令将光标移动到当前行行尾<End>键
"^"命令将光标移动到当前行的第一个非空白字符上
如"1$"会将光标移动到当前行行尾,"2$"则会移动到下一行的行尾
同理 ^ 不一样。。。
命令"fx"在当前行上查找下一个字符x, eg. 3fl,找到第三个l
"F"命令向左方向搜索
"tx"命令形同"fx"命令, T为反方向
t,f的重复操作可用";"来重复。以","也是重复同样的命令,但是方向与原命令的方向相反
移动到指定行
G23到底23行,没参数会到最后一行
"90%"跳到接近文件尾的地方
"H"意为Home, "M"为Middle, "L"为Last.分别为首,中,尾部。
匹配一个括号为目的的移动 %
显示行号:
:set number (:set nu)
:set nonumber
显示当前光标位置:
:set设置 ruler 选项。这会在Vim窗口的右下角显示当前光标位置
滚屏:
CTRL-U命令会使文本向上滚动半屏
CTRL-D命令将窗口向下移动半屏
要一次滚动一行可以使用CTRL-E(向上滚动)和CTRL-Y(向下滚动)。
"zz"命令会把当前行置为屏幕正中央:
"zt"命令会把当前行置于屏幕顶端
"zb"则把当前行置于屏幕底端
简单搜索:
"/string"命令可用于搜索一个字符串.
eg./include 搜索include
要查找上次查找的字符串的下一个位置。使用"n"命令"?"命令与"/"的工作相同,
只是搜索方向相反使用 n向前查找