VIM从入门到精通(插入、移动、编辑、撤销)

在上一篇文章里面,我介绍了怎么安装和配置vim,这一次我介绍一下vim最基本的操作

从一个简单的操作说起吧,如果我想新建一个文件,那么我该怎么办?有很多方法,我可以在终端中输入 vim new.txt 我就新建了一个new.txt文件,让后就可以编辑他了,如果我要打开一个文件,我就在终端中输入vim 要打开的文件名  就可以了

那么当我打开一个文件以后,我想在文件中插入文本该怎么办?如果以直接输入文本,试试看,是不是没有反应,哈哈~ 我来解释一下为什么。

Vim编辑器是一个模式编辑器. 这意味着在不同状态下编辑器有不同的行为模式. 两个基本的模式是Normal模式和插入模式. 在Normal模式下你键入的每一个字符都被视为一个命令而在Insert模式下键入的字符都作为实际要输入的文本内容.刚启动时Vim工作于Normal模式. 要进入Insert模式你需要使用”i”命令(i 意为Insert). 接下来就可以直接输入了. 别怕出错, 错了还可以修改.

例如我输入:

A very intelligent turtle
Found programming UNIX a hurdle

最后按下<Esc>键退出Insert模式回到Normal模式.现在你的Vim窗口中有了这样的两行内容

现在是什么模式? 要知道你现在所处的工作模式是什么, 打开显示模式的开关

:set showmode

你会看到按下冒号键之后当前光标跑到窗口的最后一行去了. 那是使用冒号命令的地方(顾名思义, 冒号命令就是总是以冒号打头的命令). 最
后按下回车键结束整个命令(所有的冒号命令都以这种方式表明命令的结束).

现在, 如果你键入了”i”命令Vim就会在窗口底部显示–INSERT–.这表明你目前处于Insert模式

如果按下<Esc>键返回到Normal模式刚才显示出来的模式”–INSERT–”就会消失

到现在感觉还比较简单,呵呵~,其实vim也不是那么难学的,但是我还是给新手提个醒:不要忘记自己现在所在的模式

Vim新手最头痛的问题就是模式—经常忘记自己置身于何种模式, 或者不经意敲了哪个字符就切换到别的模式去了. 不管你当前所处的模式是什么, 按下<Esc>都会让你回到Normal模式(即使已经在Normal模式)

好了,已经可以在vim中插入文本了,那么现在我就想介绍一下怎么移动vim的光标,有人会问,移动光标 谁不会啊,不就是右下角的上下左右吗!不错,就是这么简单,不过我还是要介绍一下,因为右下角的导航键有的时候会失效,那时候就要用另一种方法了。

回到Normal模式后, 你就可以用下面的命令来移动光标:

左:h

右:l

下:j

上:k

现在你可以试试,用h,j,k,l这四个键来移动光标,又有人要问《搞这么复杂干什么啊,太难记了吧!其实vim的作者也不想用,但是考虑到有的情况下,这种方法很有效,所以还是在vim添加了这种功能,vim手册上是这样解释的:

同时你还可以用箭头键来移动光标. 不过这样做实际上会大大降低你的效率. 因为用这些键你需要不停地在字母区和箭头键之间频繁转换. 想象一下要是你在一小时内这样做一百次会占用你多少时间? 另外, 并不是每个键盘上都安排有箭头键, 或者都把它们放在最常见的位置;所以使用hjkl还是大有好处

记住这些命令的一个办法是通过它们在键盘上的布局: h在左边, l在右边, j指向下面.但学习这些命令的最好办法不是使用什么记忆法, 而是练习. 你可以用”i”命令来在Insert 模式下输入一些内容, 然后用hjkl命令将光标移到别处再插入另外的内容, 不要忘了要用<Esc>来回到Normal模式

那么下一步该干什么呢?如果我打错字了,我该怎么办,很简单,删除它(废话),怎么删除呢?这就要用到下面几个命令

要删除一个字符, 只需要将光标移到该字符上按下”x”,删除一整行内容使用”dd”命令. 删除后下面的行会移上来填补空缺。

在Vim中你可以把两行合并为一行, 也就是说两行之间的换行符被删除了: 命令是”J”. 比如下面的两行:

A young intelligent
turtle

将光标移到第一行上然后按”J”:

A young intelligent turtle

如果你误删了过多的内容. 显然你可以再输入一遍, 但是命令”u” 更简便, 它可以撤消上一次的操作

还有几个比较实用的技巧:如果你撤消了多次, 你还可以用CTRL-R(重做)来反转撤消的动作. 换句话说, 它是对撤消的撤消. 撤消命令还有另一种形式, “U”命令, 它一次撤消对一行的全部操作. 第二次使用该命令则会撤消前一个”U”的操作.

“i”命令可以在当前光标之前插入文本. 但如果你想在当前行的末尾添加一些内容时怎么办呢? 你必需在光标之后插入文本. 答案是用”a”命令来代替”i”

例如,要把

and that°s not saying much for the turtle.

改变为

and that°s not saying much for the turtle!!!

把光标移到行尾的句点上, 然后用”x”来删除这个点号. 现在光标被置于行尾turtle的e上了. 键入命令: a!!!<Esc>

现在变为:

and that°s not saying much for the turtle!!!

如果想新建一行怎么办:在插入模式下直接按ENTER(回车),如果在正常模式下,就按o(字母o)自动在当前航下新建一行:

A very intelligent turtle
Found programming UNIX a hurdle

移动到最后一行:让后按o键,输入 “That liked using Vim ”

A very intelligent turtle
That liked using Vim
Found programming UNIX a hurdle

补充一下,用o新建一行后,vim自动进入插入模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值