Linux---够开发过程中使用的Vim命令

来源:互联网 发布:盘古网络模板 编辑:程序博客网 时间:2024/06/17 19:36

1 Vim最基础

Vim的最常用的四种模式(四种模式的提示在Vim左下角提示【-- INSERT--】、【:】、【】、【-- VISUAL --】):
  • 正常模式:按ESC键回到正常模式,正常模式不能够编辑文本,在该模式下有很多快捷操作使用,如跳转到指定行,切换文档等
  • 插入模式:即可以插入文本,编辑文档,只能由正常模式进入插入模式,下面是一些常用进入插入模式的按键操作
i:在当前光标处进入插入模式a:按下此键向后退一个字符进入插入模式o:按下此键进入当前行的下一行进入插入模式
  • 命令模式:在正常模式下输入英文状态下的冒号(:),即进入命令模式,即在此模式可以输入一些命令,并执行,比如保存编辑的文档,退出当前文档编辑,搜索和替换等
  • 可视模式 :在正常模式下,按v就进入了可视模式,可视模式能够干嘛,下面会有具体说明的

Vim的配置文件.vimrc(在当前的用户目录下~/.vimrc):

" 设置文档编码为utf-8(让中文不乱码)set encoding=utf-8" 开启语法高亮syntax on" 显示行号  set number" 突出显示当前行set cursorline" 打开状态栏标尺set ruler" 设置tab键为4个空格(方便不同的编辑器切换的时候不会乱掉格式)set tabstop=4set expandtabset autoindent

2 简单的直接对文档操作

  • 初始打开文件就进入了正常模式
  • 只能由正常模式进入插入模式
  • 只能由正常模式进入命令模式
#以下是在终端中创建并打开test.txt文件vim test.txt# 从这里开始已经进入了Vim编辑器,开始进入插入模式i# 输入文本hell vim# 进入正常模式ESC# 进入命令模式:# 输入保存并退出的命令,之后又进入了Linux终端wq 

  好的,从用vim创建了一个test.txt文档,并编辑了,然后保存退出了。接下来是要进一步操作该文档了,包括怎么在文档中删除,怎么复制,怎么黏贴,怎么向前向后撤销操作,相当于在Windows中掌握的Ctrl+x , Ctrl+c , Ctrl+v , Ctrl+z , Ctrl+y:

# 在正常模式下删除一行dd# 在正常模式下复制一行yy# 在正常模式下向前回撤(undo)操作u# 在正常模式下向后回撤(redo)操作Ctrl + r# 在正常模式下黏贴删除的内容(dd)或者复制(yy)的内容p

3 开始高级一点操作文档

3.1 剪切 复制 黏贴 撤销

  我们应当知道用Vim的时候就尽量要脱离鼠标了,鼠标有滚轮,可以翻上翻下,还能够选中文字,进而实现复制或者删除之类的操作,而在Vim中可以用快捷操作和四个方向键(← ↑ ↓ → 或者正常模式下的hjkl四个字母)来实现同样的功能,当然最简单的就是用这四个方向键上下所有移动了,不过文档很长的话,你估计要按一会儿了:

# 正常模式下直接跳转到文档末尾gg# 正常模式下直接跳转到文档头shift + g# 正常模式下跳转到指定行linenum + gg# 正常模式下跳转到行首0 或者shift+6# 正常模式下跳转到行末shift + 4

3.2 文本多行操作和单个字符操作

  在第2节中说到的复制黏贴都是一行行来的,怎么按一个个字符来呢?或者按多行来呢?

这里写图片描述

                   图1 在可视模式下选中的文本字符

# 在`正常模式`下进入`可视模式`(别告诉我你不记得怎么进入了),通过方向键选中要操作的字符或者行← ↑ ↓ →# 选中待操作的行或者字符后,按 y 键实现复制选中,当然你也可以用 d 实现剪切操作y# 复制完后自动进入正常模式,此时可以使用黏贴操作 p 了或者撤销操作 u 之类的快捷键了p

这里写图片描述

                  图2 在可视模式操作后,进入正常模式下黏贴操作的结果

  有了多行选中操作功能,那么还可以做什么呢?在编写程序的时候我们还可以用来多行缩进或者多行tab,首先这里先介绍一个单行缩进的办法:

# 光标停留在待缩进的行# 正常模式下,向左缩进,即<<:shift+,,# 正常模式下,向右缩进,即>>:shift+..

  多行缩进操作:

# 用上述中的多行选中方式,选中你待缩进的程序代码# 然后< 表示向左缩进,而> 表示向右缩进,即shift+,shift+.# 当然还可以不用上述方式选中即可多行缩进: 要缩进的行数+<<(正常模式下)# 从当前行开始,向左缩进6行(只缩进一个tab)6<<

  如何自动缩进呢?而不只是一个tab制表符

# 在正常状态下,行数 + ==,自动对齐代码# 从当前行开始,自动对齐7行代码7==

3.3 在文档中搜索和替换

  在Windows系统中,还有一个常用的操作就是Ctrl+f或者是Ctrl+h,那么在Vim中如何实现呢?
  在Vim的查找是简单的,反斜杠加上你要查找的字符串:

# 在正常模式/find_str# 查找到了要的多个find_str,可以键入n来切换到下一个find_strn# 查找到了要的多个find_str,可以键入n来切换到上一个find_strshift+n

  但是查找并替换就有点小规则了,查找替换的命令的格式(命令模式下操作)是如下的,已经查找好了,直接按ESC键可以退出查找:

:[range]s/from/to/[flags]
[range]=% ,全文查找1,10 ,从第1行到第10行中查找3,只在第三行中查找[from]待查找字符或字符串[to]待替换的字符[flags]= c confirm,每次替换前询问;e error, 不显示错误;g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;i ignore,忽略大小写

  下面是一些常用的查找替换操作:

# 全文查找并替换(有提示 (y/n/a/q/l/^E/^Y)? ):%s/find_str/replace_str/c# 当前行查找,查完就退出查找(有提示 (y/n/a/q/l/^E/^Y)? ):s/find_str/replace_str/gc

4 多标签操作(多文档操作)

  上面的三节够我们在一个文档里面进行操作了,那么如果想同时在一个界面里操作多个文档呢?就向浏览器一样可以有很多个页面,鼠标想点哪个页面就点哪个页面,然后进行浏览和操作呢?

这里写图片描述

           图3 多个文档操作的界面(文档标签处的+表示未保存)

# 在终端中打开多个文档vim -p test1.txt test2.txt test3.txt# 或者用Vim打开了一个文档test1.txt后,接着想在Vim内直接打开当前目录下的另一个文件test2.txt(命令模式下):tabnew ./test2.txt# 想在多个文档之间切换,循环切换查看---方式一,正常模式下gt# 想在多个文档之间切换,查看上一个文档---方式二,命令模式下:tabp# 想在多个文档之间切换,查看下一个文档---方式三,命令模式下:tabn# 想关闭除当前文档之外的其他文档:tabo# 如果打开的文档有好几十个,可以在命令模式下,用该命令来选择选中哪个文档来查看:tabs

5 其他的一些有意思的操作

5.1 Vim后台挂起

# Vim挂起:当不想要关闭当前文档,但是想进入[终端]输入一些命令的时候,可以在[命令模式]下::shell# 进入终端了,然后操作完你的命令了,想回到之前编辑的文档界面(注意你当前在终端里):exit

5.2 Vim锁定

  以前在Window系统的时候,喜欢编辑完后按Ctrl+s来保存文档,这是个很好的习惯,但是在Vim中却不是了,因为这个操作在正常模式下会让你的Vim锁住,光标啥的都移动不了了,那么怎么来解锁呢?

# 正常模式下锁住Vimctrl+s# 解锁Vimctrl+q

5.3 字符串自动补全(你当且认为是代码补全)

  Vim是很强大的,利用插件可以实现很高大上的功能,但是上面的所说都是基于默认的Vim,没有任何插件的,这小节所说的字符串自动补全也是一样,这个在做Linux下程序开发的时候,和实用的,类似Notepad++这个软件中的字符串补全功能:

这里写图片描述

                  图4 字符串自动补全功能视图

# 在插入模式下,插入模式下哦Ctrl+n

—————————————————————————-

  上面的操作是可以让一个程序员足够快的开发项目的,后面Vim的技能,慢慢在求知路上积累了。

0 0
原创粉丝点击