vim 指令学习

1.编辑命令

编辑
按"v"可以进入Visual模式. 移动光标以覆盖你想操纵的文本范围.同时被选中的文本会以高亮显示. 最后键入操作符命令.
CTRL-G命令显示了你正在编辑的文件名, 当前光标所在行的行号, 总的行数, 以及当前行所在文件中的百分比和当前光标所在的列的信息

你以"d"或"x"这样的命令删除文本时, 被删除的内容还是被保存了,你还可以用p命令把它取回来

"y"操作符命令会把文本复制到一个寄存器中
"yy"命令复制一整行, 就象"dd"是删除一整行一样

"R"命令会让Vim进入replace模式
 插入

a 下一位置

i 当前位置

o  在当前行的下面另起一行

"c", 改变命令,比如"cw"改变一个word. 或者, 更准确地说, 它删除一个word并让你置身于Insert模式


x代表dl(删除当前光标下的字符)
X代表dh(删除当前光标左边的字符)

D代表d$(删除到行尾的内容)

C代表c$(修改到行尾的内容)
s代表cl(修改一个字符)
S代表cc(修改一整行)

"r"命令不是一个操作符命令. 它等待你键入下一个字符用以替换当前光标下的那个字


使用命令计数

假设你要向上移动9行. 这可以用"kkkkkkkkk"或"9k"来完成. 事实
上, 很多命令都可以接受一个数字作为重复执行同一命令的次数. 比如
刚才的例子, 要在行尾追加三个感叹号, 当时用的命令是"a!!!<Esc>".
另一个办法是用"3a!<Esc>"命令. 3说明该命令将被重复执行3次. 同
样, 删除3个字符可以用"3x". 指定的数字要紧挨在它所要修饰的命令前
面.

移动

h  左移

j 上移

k 下移

l  右移

使用"w"命令可以将光标向前移动一个word

"b" 命令则将光标向后移动到前一个word


"e"  命令会将光标移动到下一个word的最后一个字符

"ge" 它将光标移动到前一个word的最后一个字符上


CTRL-U命令会使文本向下滚动半屏

CTRL-D命令将窗口向下移动半屏

要一次滚动一行可以使用CTRL-E(向上滚动)和CTRL-Y(向下滚动)

要向前滚动一整屏(实际上是整屏去两行)使用命令CTRL-F. 另外CTRL-B是它的反向版


"$"命令将光标移动到当前行行尾. 如果你的键盘上有一个<End>键,它的作用也一样.

"^"命令将光标移动到当前行的第一个非空白字符上

"0"命令则总是把光标移动到当前行的第一个字符上。<Home>键也是如此


"zz"命令会把当前行置为屏幕正中央:

"zt"命令会把当前行置于屏幕顶端 , "zb"则把当前行置于屏幕底端 

删除

dd 删除一行

u 撤消

用CTRL-R(重做)来反转撤消的动作

"x"命令可以删除一个字符

dw"命令可以删除一个word

"cc"命令可以改变整行.保持原来的缩进(一行打头的空白).


x删除当前光标下的字符("dl"的快捷命令)
X删除当前光标之前的字符("dh"的快捷命令)
D删除自当前光标至行尾的内容("d$"的快捷命令)
dw删除自当前光标至下一个word的开头
db删除自当前光标至前一个word的开始
diw删除当前光标所在的word(不包括空白字符)
daw删除当前光标所在的word(包括空白字符)
dG删除当前行至文件尾的内容
dgg删除当前行至文件头的内容

跳转
"gg"命令跳转到第一行
"G"会把光标定位到最后一行上(2G跳转到第二行)

另一个移动到某行的方法是在命令"%"之前指定一个命令计数  . 比
如"50%"将会把光标定位在文件的中间 . "90%"跳到接近文件尾的地方 3.
“H”."M“.”L“ 跳转到当前页的开头中间结尾("H"意为Home, "M"为Middle, "L"为Last.)


CTRL-O命令是跳转到你更早些时间停置光标的位置(提示: O意为older).
 CTRL-I则是跳回到后来停置光标的更新的位置(提示: I在键盘上位于O前面)
查找
命令"fx"在当前行上查找下一个字符x(该命令可以带一个命令计数,表示查找第几个)(F反向寻找)
"tx"命令形同"fx"命令, 只不过它不是把光标停留在被搜索字符上, 而是在它之前的一个字符上(T反向寻找)

“%”它 跳 转 到 与 当 前 光 标 下 的 括 号 相 匹 配 的 那 一 个 括 号 上去

"/string"命令可用于搜索一个字符串要查找上次查找的字符串的下一个位置. 使用"n"命令
"?"命令与"/"的工作相同, 只是搜索方向相反

把光标定位于一个word上, 然后按下"*"键.Vim将会取当前光标所在的word并将它作用目标字符串进行搜索
"#"命令是"*"的反向

"\"是一个特殊的记法, 它只匹配一个word的结束处.近似地, "\"匹配到一个word的开始处 . 这样查找作为一个word的"the"就可以用:/\<the\>
$字符匹配一行的末尾. 所以"was$"只匹配位于一行末尾的单词was

.这个字符可以匹配到任何字符. 比如"c.m"可以匹配任何前一个字符是c后一个字符是m的情况
重复命令
可以用";"来重复. 以","也是重复同样的命令但是方向与原命令的方向相反

备份
:set backup
:set backupext=.bak改变后缀
'backupdir'. 它指定了备份文件将被置于哪个目录下
:set patchmode=.orig可以让Vim保存原始文件, 它指定了备份该原始版所用的文件扩展名
指令
:scriptnames命令输出的第一行会有一个叫".vimrc"或" vimrc"的文件, 位置是你的home目录

设置'number'选项 4 . 这会在每行的前面显示一个行号:(set number      关闭set nonumber)

如果你并不关心目标字符中字母的大小写, 可以通过设置'ignorecase'选项(set ignorecase)
set hlsearch    Vim就会以某种形式高亮显示所有符合的匹配(如果你只是想去掉当前的高亮显示nohlsearch)
set incsearch   这使得你在键入目标字符串的过程中Vim就同时开始了搜索工作. 使用这种方法可以让你在尚未完全键入字串时就能找到目标. 你可以选择按回车跳转到当前匹配到的位置或者键入字串的其它部分继续搜索
set autoindent这个命令让Vim在开始一个新行时对该行施以上一行的缩进方式
set history=50设置冒号命令和搜索命令的命令历史列表的长度. 当然你也可以设置其它的值
set ruler总是在Vim窗口的右下角显示当前光标的行列信息.
map 该命令定义了一个键映射(:map p i(<Esc>ea)<Esc>)
:set noscrollbind同步滚动
对文件操作
:write >> logfile这将会把当前文件的内容追加到文件"logfile"
vim -R file只读方式运行Vim
vim -M file强制性地避免对文件进行修改
:saveas move.c类似另存为后面为文件名
:file move.c改变当前正在编辑的文件名, 但不想保存该文件

分割窗口
:split打开窗口
:close关闭窗口
CTRL-W w命令可以切换当前活动窗口. 如果你在上面窗口, 它会把它带到下面.
:split two.c
:new 打开一个新窗口并开始编辑一个空的缓冲区
:3split alpha.c打开了一个高度为3行的新窗口并在其中编辑名为alpha.c的文件
增加当前窗口高度CTRL-W +(CTRL-W -)
"4 CTRL-W +"将使当前窗口增加4行高度.

:vsplit新窗口出现在当前窗口的左边
:vnew==:vertical new
":vertical"可以出现在任何分隔窗口的命令前

CTRL-W h 到左边的窗口
CTRL-W j 到下面的窗口
CTRL-W k 到上面的窗口
CTRL-W l 到右边的窗口
CTRL-W t 到顶部窗口
CTRL-W b 到底部窗口
(变大写就是移动窗口)

:qall全部退出
:wall全部保存
使用"-o"选项可以让Vim为每一个文件打开一个窗口
如果已经进入了vim, ":all"命令会为命令行上指定的所有文件各开一个窗口

打开到
:leftabove {cmd} 当前窗口的左边或上面
:aboveleft {cmd} 同上
:rightbelow {cmd}当前窗口的右边或下面
:belowright {cmd}同上
:topleft {cmd}当前窗口的下面或右边
:botright {cmd}当前窗口的下面或右边

差异
vimdiff main.c~ main.c  可以查看两个文件的不同
]c,([c)跳到不同之处v
:diffupdate Vim并不时时更新对应的高亮显示
dp
do
帮助
:help
要查看关于某个特殊主题的帮助, 使用下面的命令形式:
:help {subject}
比如   要查找关于如何删除的内容, 使用命令:
:help deleting
关于各种模式都要用哪些前辍可以在|help-context|中找到.

或按<F1>也可调出帮助

编辑多个文件
:edit foo.txt打开一个vim
:hide edit foo.txt打开另一个文件 并把打开的文件变成隐藏缓冲区
vim one.c two.c three.c 用:next编辑下个文件
:wnext=:write   :next
:last要移到最后一个文件
:first到第一个
:previous要回到前一个文件
CTRL-^两个文件间快速切换
:args 如果你想查看整个列表中就有哪些文件
`"这个标记会带你到上次你离开该文件时光标所在的位置.
`.你最后一次对文件做出改动处



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值