Linux Vim 的使用

Vim 的使用

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计

##vim简介
###什么是Vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

连 vim 的官方网站 http://www.vim.org自己也说 vim 是一个程序开发工具而不是文字处理软件。


###VIM优点

高效率移动
  • 强大命令模式:在插入模式之外基本上来说,尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像一个“哑巴”编辑器一样。 VIM 的强大之处在于他的命令模式!
  • 使用 h、j、k、l:使用 VIM 高效率编辑的第一步,就是放弃使用箭头键。使用 VIM就不用频繁的在箭头键和字母键之间移来移去了,这会节省很多时间。当命令模式时,可以用 h、j、k、l 来分别实现左、下、上、右箭头的功能。
  • 在当前行里面有效的移动光标:很多编辑器只提供了简单的命令来控制光标的移动(比如左、上、右、下、到行首/尾等)。VIM 则提供了很多强大的命令来满足控制光标的欲望。当光标从一点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是 motion。
  • 在整个文件里面有效移动光标:VIM 有很多命令,可以用来到达文件里面你想到达的地方。
高效的输入
  • 使用关键词自动完成:VIM 有一个非常漂亮的关键词自动完成系统。使用关键词自动完成功能,只需要输入开始几个字母(比如 iAmAL),然后按 (按住 Ctrl,再按 N)或者 。如果 VIM 没有给出你想要的词,继续按,直到你满意为止,VIM 会一直循环它找到的匹配的字符串。
  • 聪明的进入插入模式:VIM 提供了很多进入插入模式的命令。
  • 有效的移动大段的文本:使用可视选择(visual selections)和合适的选择模式。不像最初的 VI,VIM 允许你高亮(选择)一些文本,并且进行操作。
  • 在可视选择模式下剪切和拷贝
  • 粘贴:粘贴很简单,按 p。
  • 使用多重剪贴板:很多编辑器都只提供了一个剪贴板。VIM 有很多。剪贴板在 VIM 里面被称为寄存器(Registers)。你可以列出当前定义的所有寄存器名和它们的内容,命令为“:reg”。最好使用小写字母来作为寄存器的名称,因为大写的有些被 VIM 占用了。
  • 避免重复:在 VI 里面,输入 . (小数点符号),将会重复输入的上一个命令。
  • 使用数字:使用数字也是 VIM 强大的而且很节省时间的重要特性之一。在很多 VIM 的命令之前都可以使用一个数字。

Vim的3中常用模式

    • 末行模式(底线命令模式)
    • 编辑模式(输入模式)
    • 一般模式(命令模式)
  • Vim实践
    基本上 Vim 共分为三种模式,分别是一般模式(命令模式),编辑模式(输入模式)和末行模式(底线命令模式)。 这三种模式的作用分别是:

一般模式(命令模式)

用户刚刚启动 Vim,进入文件便进入了一般模式(命令模式)。任何时候,不论用户处于何种模式,只要按一下Esc键,就可进行入vi/vim的一般模式(命令模式)

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

  • i键 切换到编辑模式(输入模式),以输入字符。
  • Esc键 切换到一般模式(命令模式)
  • :键 切换到末行模式(底线命令模式),以在最底一行输入命令。

若想要编辑文本:启动Vim,进入文件便进入了一般模式(命令模式);按下i键,切换到编辑模式(输入模式);按Esc键切换到一般模式(命令模式),再按:键切换到末行模式(底线命令模式)


在一般模式(命令模式)下,可以进行的操作有上下移动光标、删除某个字符、删除某行、以及复制或粘贴一行或多行

末行模式(底线命令模式)

在末行模式(底线命令模式)中可以搜索某个字符或者字符串,也可实现保存、退出、显示行号等功能
在一般模式(命令模式)下按下:键就进入了末行模式(底线命令模式)。在编辑模式(输入模式)可以先按Esc键切换到一般模式(命令模式),再按:键切换到末行模式(底线命令模式)

末行模式(底线命令模式)可以输入单个或多个字符的命令,可用的命令非常多。

在末行模式中,常用的命令有

  • :q:退出程序
  • :q!:如果无法离开Vim,可以使用此命令强制退出Vim编辑器
  • :w:保存文件
  • :wq!:保存文件并退出编辑器
  • :wq!:保存文件并强制退出编辑器
  • :x:保存文件并强制退出编辑器,其功能与:wq!相同
    按ESC键可随时退出末行模式(底线命令模式)回到一般模式(命令模式)。

编辑模式

在命令模式下按下i就进入了编辑模式。

在编辑模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

###三种模式关系
简单的说,我们可以将这三个模式想成底下的图标来表示:、

##vimVim实践

启动vim编辑器

可以使用一下命令启动vi/vim进入编辑器界面
vim filename:打开或新建一个文件,并将光标的位置置于第一行的行首
vim -r filename:恢复上次vi打开时崩溃的文件
vim -R filename:以只读的方式将文件放入编辑器
vim + filename:打开文件,并将光标的位置置于最后一行的行首
vim +n filename:打开文件,并将光标的位置置于第n行的行首
vim +/pattern filename:打开文件,并将光标的位置置于第一个与pattern匹配的位置
vim -c command filename:在对文件进行编辑前,先执行command命令
vim filename1 ... filename_n:打开多个文件,并对它们一次进行编辑
###退出Vim编辑器
切换到末行模式(底线命令模式),可以执行以下命令进行退出

  • :q:退出程序
  • :q!:如果无法离开Vim,可以使用此命令强制退出Vim编辑器
  • :wq!:保存文件并退出编辑器
  • :wq!:保存文件并强制退出编辑器
  • :x:保存文件并强制退出编辑器,其功能与:wq!类似
  • :exit:保存并退出,,其功能与:wq!类似
  • :qa:退出所有
  • :cq:退出且不保存,即便有错误发生

在一般模式(命令模式)下,可以按ZZ保存退出文件,可以以按ZQ不保存直接退出文件

  • ZZ:保存退出文件
  • ZQ:不保存直接退出文件

###移动光标操作
在一般模式(命令模式)下,可以使用一下命令移动光标

  • ↑键 k键:将光标向上移动一行

  • ↓键 j键:将光标向下移动一行

  • ←键 h键:将光标向左移动一个字符

  • →键 l键:将光标向右移动一个字符

  • nk:将光标向上移动n行

  • nj:将光标向下移动n行

  • nh:将光标向左移动n个字符

  • nl:将光标向右移动n个字符

  • 0键:移动到光标所在行的行首

  • $键:移动到光标所在行的行尾

  • H键:将光标移动到屏幕的顶部

  • M键:将光标移动到屏幕的中间

  • L键:将光标移动到屏幕的底部

命令功能
↑键 k键将光标向上移动一行
↓键 j键将光标向下移动一行
←键 h键将光标向左移动一个字符
→键 l键将光标向右移动一个字符
nk将光标向上移动n行
nj将光标向下移动n行
nh将光标向左移动n个字符
nl将光标向右移动n个字符
0键移动到光标所在行的行首
$键移动到光标所在行的行尾
H键将光标移动到屏幕的顶部
M键将光标移动到屏幕的中间
L键将光标移动到屏幕的底部

###Vim中的行号
要显示Vim中的行号,需要切换到末行模式(底线命令模式),可以执行以下命令显示行号或取消行号显示

  • :set nu:显示行号
  • :set nonu:取消行号

这里的行号只是为了方便用户预览方便,并非是原文文件内容的一部分

###查找与替换(未完成)

###复制与粘贴(未完成)

###屏幕命令
####滚屏命令
关于滚屏命令有两个

  • Ctrl+U组合键:相对于当前屏幕,将屏幕向前翻滚半屏
  • Ctrl+D组合键:相对于当前屏幕,将屏幕向后翻滚半屏

####分页命令
关于分页命令有两个

  • Ctrl+F组合键:相对于当前屏幕,将屏幕向前翻滚一页
  • Ctrl+B组合键:相对于当前屏幕,将屏幕向后翻滚一页

###执行Shell命令

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值