学习链接:

vim命令大全

http://blog.csdn.net/scaleqiao/article/details/45153379

vim命令小技巧

http://www.codeceo.com/article/useful-vim-command.html

1. 关于Vim

vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh)

3. 文档操作

4. 光标的移动

4.1 基本移动

以下移动都是在normal模式下。

上面的操作都可以配合n使用,比如在正常模式(下面会讲到)下输入3h, 则光标向左移动3个字符。

4.3 标记

使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退 和 前进 。

5. 插入文本

6. 剪切复制和寄存器

6.1 剪切和复制、粘贴

7. 查找与替换

7.1 查找

可以用grep或vimgrep查找一个模式都在哪些地方出现过,
其中:grep是调用外部的grep程序,而:vimgrep是vim自己的查找算法。
用法为: :vim[grep]/pattern/[g] [j] files
g的含义是如果一个模式在一行中多次出现,则这一行也在结果中多次出现。
j的含义是grep结束后,结果停在第j项,默认是停在第一项。
vimgrep前面可以加数字限定搜索结果的上限,如
:1vim/pattern/ % 只查找那个模式在本文件中的第一个出现。
其实vimgrep在读纯文本电子书时特别有用,可以生成导航的目录。
比如电子书中每一节的标题形式为:n. xxxx。你就可以这样:
:vim/^d{1,}./ %
然后用:cw或:copen查看结果,可以用C-w H把quickfix窗口移到左侧,
就更像个目录了。

7.2 替换

还有一种比替换更灵活的方式,它是匹配到某个模式后执行某种命令,
语法为 :[range]g/pattern/command
例如 :%g/^ xyz/normal dd。
表示对于以一个空格和xyz开头的行执行normal模式下的dd命令。

关于range的规定为:

  • 如果不指定range,则表示当前行。
  • m,n: 从m行到n行。
  • 0: 最开始一行(可能是这样)。
  • $: 最后一行
  • .: 当前行
  • %: 所有行


8. 排版


9. 编辑多个文件

9.1 一次编辑多个文件

我们可以一次打开多个文件,如

<span style="font-size:14px;">vi a.txt b.txt c.txt
</span>
  • 使用:next(:n)编辑下一个文件。
  • :2n 编辑下2个文件。
  • 使用:previous或:N编辑上一个文件。
  • 使用:wnext,保存当前文件,并编辑下一个文件。
  • 使用:wprevious,保存当前文件,并编辑上一个文件。
  • 使用:args 显示文件列表。
  • :n filenames或:args filenames 指定新的文件列表。
  • vi -o filenames 在水平分割的多个窗口中编辑多个文件。
  • vi -O filenames 在垂直分割的多个窗口中编辑多个文件。

9.2 多标签编辑

10. 分屏编辑

11. 快速编辑

12. 编辑特殊文件

13. 编程辅助

13.1 一些按键

下面的括号匹配对编程很实用的。

13.2 ctags

有时一个tag可能有多个匹配,如函数重载,一个函数名就会有多个匹配。 这种情况会先跳转到第一个匹配处。

tab键补齐

14. 命令行

normal模式下按:进入命令行模式

15. 其它

vim命令小技巧

保存文件并退出

说起来有些惭愧,我也是最近才学到这个命令

: x

和下面的命令是等价的:

: wq

都是保存当前文件并退出。

(译者注:这两个命令实际上并不完全等价,当文件被修改时两个命令时相同的。但如果未被修改,使用 : x 不会更改文件的修改时间,而使用 :wq 会改变文件的修改时间。)

基本计算器

在插入模式下,你可以使用 Ctrl+r 键然后输入 =,再输入一个简单的算式。按 Enter 键,计算结果就会插入到文件中。例如,尝试输入:

Ctrl+r '=2+2' ENTER

然后计算结果“4 ”会被插入到文件中。

查找重复的连续的单词

当你很快地打字时,很有可能会连续输入同一个单词两次,就像 this this。这种错误可能骗过任何一个人,即使是你自己重新阅读一遍也不可避免。幸运的是,有一个简单的正则表达式可以用来预防这个错误。使用搜索命令(默认是 /)然后输入:

这会显示所有重复的单词。要达到最好的效果,不要忘记把下面的命令:

set hlsearch

放到你的 .vimrc 文件中高亮所有的匹配。

缩写

一个很可能是最令人印象深刻的窍门是你可以在 Vim 中定义缩写,它可以实时地把你输入的东西替换为另外的东西。语法格式如下:

:ab [缩写] [要替换的文字]

一个通用的例子是:

:ab asap as soon as possible

会把你输入的 “asap” 替换为 “as soon as possible”。

在你忘记用 root 方式打开文件时的文件保存

这可能是一个在论坛中一直受欢迎的命令。每当你打开一个你没有写入权限的文件(比如系统配置文件)并做了一些修改,Vim 无法通过普通的 “:w” 命令来保存。

你不需要重新以 root 方式打开文件再进行修改,只需要运行:

:w !sudo tee %

这会直接以 root 方式保存。

实时加密文本

如果你不想让别人看懂你的屏幕上的内容,你可以使用一个内置的选项,通过下面的命令使用 ROT13来对文本进行编码:

ggVGg?

gg 把光标移动到 Vim 缓冲区的第一行,V 进入可视模式,G 把光标移动到缓冲区的最后一行。因此,ggVG 使可视模式覆盖这个当前缓冲区。最后 g? 使用 ROT13 对整个区域进行编码。

注意它可以被映射到一个最常使用的键。它对字母符号也可以很好地工作。要对它进行撤销,最好的方法就是使用撤销命令:u。

自动补全

这是另外一个令我感到惭愧的功能,但我发现周围很多人并不知道。Vim 默认有自动补全的功能。的确这个功能是很基本的,并且可以通过插件来增强,但它也很有帮助。方法很简单。Vim 尝试通过已经输入的单词来预测单词的结尾。比如当你在同一个文件中第二次输入 “compiler” 时,仅仅输入 “com” 然后保持在插入模式,按 Ctrl+n 键就可以看到 Vim 为你补全了单词。很简单,但也很有用。

比较两个文件的不同

你们中的大多数很可能都知道 vimdiff 命令,它可以使用分离模式打开 Vim 并比较两个文件的不同。语法如下:

$ vimdiff [文件1] [文件2]

但同样的结果也可以通过下面的 Vim 命令来获得:

:diffthis

首先在 Vim 中打开原始文件。然后使用分离模式带来第二个文件:

:vsp [文件2]

最后在第一个缓冲区里输入:

:diffthis

通过 Ctrl+w 来切换缓冲区并再次输入:

:diffthis

这样两个文件中不同的部分就会被高亮。

(译者注:可以直接在一个缓冲区里使用命令 :windo diffthis,而不用输入 :diffthis 两次)

要停止比较,使用:

:diffoff

按时间回退文件

Vim 会记录文件的更改,你很容易可以回退到之前某个时间。该命令是相当直观的。比如:

:earlier 1m

会把文件回退到 1 分钟以前的状态。

注意,你可以使用下面的命令进行相反的转换:

:later

删除标记内部的文字

当我开始使用 Vim 时,一件我总是想很方便做的事情是如何轻松的删除方括号或圆括号里的内容。转到开始的标记,然后使用下面的语法:

di[标记]

比如,把光标放在开始的圆括号上,使用下面的命令来删除圆括号内的文字:

di(

如果是方括号或者是引号,则使用:

di{

和:

di"

删除指定标记前的内容

和删除标记内部有些相似,但目的不同。命令如下:

dt[标记]

会删除所有光标和标记之间的内容(保持标记不动),如果在同一行有这个标记的话。例如

dt.

会删除至句子的末尾,但保持 ‘.’ 不动。

把 Vim 变为十六进制编辑器

这不是我最喜欢的窍门,但有时会很有趣。你可以把 Vim 和 xxd 功能连起来来把文件转换为十六进制模式。命令如下:

:%!xxd

类似的,你可以通过下面的命令恢复原来的状态:

:%!xxd -r

把光标下的文字置于屏幕中央

我们所要做的事情如标题所示。如果你想强制滚动屏幕来把光标下的文字置于屏幕的中央,在可视模式中使用命令(译者注:在普通模式中也可以):

zz

跳到上一个/下一个位置

当你编辑一个很大的文件时,经常要做的事是在某处进行修改,然后跳到另外一处。如果你想跳回之前修改的地方,使用命令:

Ctrl+o

来回到之前修改的地方

类似的:

Ctrl+i

会回退上面的跳动。

把当前文件转化为网页

这会生成一个 HTML 文件来显示文本,并在分开的窗口显示源代码:

:%TOhtml

vim编辑器操作和配置命令大全相关推荐

  1. 思科交换机配置命令大全!

    1. 交换机支持的命令: 交换机基本状态: switch: :ROM状态, 路由器是rommon> hostname> :用户模式 hostname# :特权模式 hostname(con ...

  2. CISCO交换机配置命令大全

    CISCO交换机配置命令大全 1.在基于IOS的交换机上设置主机名/系统名: switch(config)# hostname hostname 在基于CLI的交换机上设置主机名/系统名: switc ...

  3. Cisco PIX防火墙配置命令大全

    Cisco PIX防火墙配置命令大全 来源: 作者:XUEYAN 出处:巧巧读书 2007-04-26 进入讨论组 关 键 词:子网掩码   协议   路由器   服务器   访问控制    一.PI ...

  4. 送你了,思科设备基础配置命令大全(一),赶紧收藏......

    [欢迎关注微信公众号:厦门微思网络] xmws-IT 思科设备基础配置命令大全(一) 思科设备管理基础命令 enable   从用户模式进入特权模式 configure terminal   进入配置 ...

  5. H3C交换机路由器配置命令大全

    H3C交换机配置命令大全 1.system-view 进入系统视图模式 2.sysname 为设备命名 3.display current-configuration 当前配置情况 4. langua ...

  6. H3C交换机、路由器常用配置命令大全

    H3C交换机配置命令大全 1.system-view 进入系统视图模式 2.sysname 为设备命名 3.display current-configuration 当前配置情况 4. langua ...

  7. 华三路由交换配置命令_H3C交换机、路由器常用配置命令大全

    H3C 交换机配置命令大全 1 . system-view 进入系统视图模式 2 . sysname 为设备命名 3 . display current-configuration 当前配置情况 4 ...

  8. 【常用】linux 命令是什么的缩写(命令缩写)?vi快捷键,linux操作,c语言缩写,计算机相关,其他缩写,xshell操作,apt-get命令大全

    文章目录 linux缩写 Linux man快捷键 Linux vi快捷键 linux终端操作(shell:bash.sh) linux快捷键 apt-get 命令大全 xshell操作 Linux ...

  9. vim编辑器操作汇总

    VIM - Vi IMproved 7.4 编辑器操作汇总 vim   [参数]   [文件 ..]         编辑指定的文件 或: vim   [参数]    -     从标准输入(stdi ...

最新文章

  1. 思科路由器DHCP基础配置
  2. SSL延迟有多大 (Https)
  3. python unitest框架_python单元测试框架Unitest
  4. 锐捷亮相GITC:请互联网企业为我点个赞!
  5. jqueryui dialog asp.net服务端控件失效问题解决
  6. java hdfs 指定用户目录_HDFS目录(文件 )权限管理
  7. java特性,健壮性,程序设计风格及文档
  8. Sequelize Model
  9. Comparable与Comparator
  10. wordpress插件WP Rest API接口文档说明
  11. CAD2011启动死机,响应很慢
  12. bzz xch出来后fil未来会怎么样?
  13. iOS 防键盘遮挡
  14. 软件测试之柠檬班python全栈自动化50期测试笔记
  15. Python三步爬取VMgirls小姐姐图片
  16. python中的字体设置,pythontkinter设置界面字体样式_修改Python Tkinter中的默认字体...
  17. 【数据分析】搜索和非结构化数据分析值得关注的5大趋势
  18. 同步电机仿真永磁同步电机 弱磁控制 simulink仿真模型 凸极电机
  19. WPBC乳腺癌数据集建模(Ⅱ)—预后诊断模型建立
  20. 基于java的华容道小游戏

热门文章

  1. 解决:旧版本的 Boostnote 笔记无法导入到新版本 Boostnote 中
  2. 通过项目学习Python(一)
  3. html矢量图 对画布的拖拽,原生WebGL如何使用鼠标拖拽画布?
  4. java求时间复杂度求值_计算时间复杂度例题(示例代码)
  5. excel单元格合并后跨页出现的边框问题?
  6. python除法保留n位小数
  7. 前端新拟态UI风格按钮,button按钮点击凹陷效果
  8. [网络安全学习篇17]:三层交换机、HSRP、网络规划(千峰网络安全视频笔记 17 day)
  9. 清除mac其他文件的免费软件:OmniDiskSweeper
  10. python 数据类型转换 及 字符串 转int 报错处理