关于vim的使用,通过博客,无论是静态的截图或者是代码/文本复制,很难展示所要表现的内容。更多需要读者亲自敲键盘实践之后才知道其作用。

本文不会也无法描述vim过多的细节,仅仅是对于常用的命令做一下记录,因为vim的帮助文档很庞当。

对于vim的初学者来说,可直接使用vimtutor教程先了解一下,关于该教程本人也实践过并撰写了博文:《vimtutor学习笔记》

有遇到一些没有解释过的单词或者英文词汇,建议大家先看我的vimtutor教程或者man一下或者实践。

简介

vim是一款在Linux上强大的文本编辑器,同类型的强大对手是Emacs。

vim的全拼是Vi IMproved,而Vi也是一款文本编辑器,vim相对vi增加了很多的新特性,例如语法高亮等。

vim [options] [filelist]

vim可以编辑单个文件或者多个文件。简单选项如下。

+n:打开文件后,光标处于第n行的行首;

+/PATTERN:打开文件后,光标处于第一个匹配到PATTERN的位置;

+:打开文件后,光标处于最后一行的行首;

命令基础

此为一般模式(normal)与命令行(command-line)模式常用命令。

一般模式命令语法格式。

operator [numbers] motion

部分可以只有双operator来表示光标所在行的操作,例如dd。

operator operator

移动/范围(motion)

大部分命令,都可以结合motion。命令与motion的结合,motion可前可后,需要具体情况具体分析。

3dd:删除3行。不能写成dd3。
dw:删除光标处字符至下个单词的词首,不包含下个单词的词首。不能写成wd。

下文,具体的命令中,就不再提到命令(operator)与motion的结合。

毕竟这篇博文只打算用作常用命令参考!

字符间

hjkl:左下上右。

单词间

w:下一个单词词首。

e:当前或者下一个单词词尾。

b:当前或者上一个单词的词首。

行首行尾

0:绝对行首。

^:行首。

$:行尾。

行间

gg:首行。

G:尾行。

nG:第n行。

句间和段间

(:上一句。

):下一句。

{:上一段。

}:下一段。

可视化(visual)

v:字符可视化模式。

V:行可视化模式。

括号匹配

%:括号匹配。

翻屏

Ctrl+f:向下翻一屏。

Ctrl+b:向上翻一屏。

Ctrl+d:向下翻半屏。

Ctrl+u:向上翻半屏。

各种命令杂七杂八

删除

x:删除单个字符。

dd:删除整行。

进入插入模式

i:insert,在光标位置插入。

a:append,在光标位置的后面插入。

o:在光标位置的下方打开一个新行,并使光标位于行首。

I:在光标所在行的行首插入。

A:在光标所在行的行尾插入。

O:在光标位置的上方打开一个新行,并使光标位于行首。

保存与退出

w:保存。

q:退出。

ZZ、:x、:wq:保存并退出。

q!:强制退出不保存。

替换(replace)

r:单字符。

R:进入替换模式。

改变(change)

区别于替换,会进入插入模式。

cc:整行改变。

复制和粘贴

y:复制。

yy或者Y:整行复制。

p:下/后粘贴。

P:上/前粘贴。

撤销与重做

u:撤销。

U:行撤销。

CTRL-R:恢复撤销。

.:重做。

读取文件和写入文件(另存为)

:r /PATH/FROM/FILE:读取文件并插入。

:w /PATH/TO/FILE:另存为某个文件。

地址定界

:start_pos[,end_pos]

m:第m行。

.:当前行。

$:最后一行。

m,n:第m行到第n行。

m,+n:第m行及其后面的n行。

.,$-1:当前行至倒数第二行。

1,$:全文。

%:全文。

/PATTERN/:第一次被PATTERN匹配到的行。

/first/,$:第一次被first匹配到的行至最后一行。

注意:匹配的时候,是从光标所在行开始向文件底部匹配。

/PATTERN1/,/PATTERN2/:从光标所在处开始,第一次匹配到PATTERN1的行至第一次匹配到PATTERN2的行。

查找

查找中的pattern支持正则表达式,应该是BRE。

/PATTERN:从光标所在行向下查找PATTERN所匹配的字符串。

?PATTERN:从光标所在行向上查找PATTERN所匹配的字符串。

注意:以上2个都可以循环查找。

n:下一个,与命令方向相同。

N:上一个,与命令方向相反。

查找替换

s/SEARCH/REPLACE/MODIFIER

SEARCH:表示所要查找的内容,支持RE。

REPLACE:表示所要替换成的内容,不支持RE,但可以引用分组的内容。

  第一种引用的形式,和RE中是类似的。

  第二种引用的形式是引用整个SEARCH所匹配到的内容,即使用&符号。

MODIFIER:表示修饰符。

  i:查找时忽略大小写。

  g:替换行中所有匹配到的内容。

  c:确认式替换。

当SEARCH或者REPLACE中的内容存在“/”的时候,可以使用转义字符对其进行转义(“\/”),或者使用其他字符(@或者#)代替。

多文件

# vim FILE1 FILE2 ...

文件间切换

:next:切换到下一个文件。

:prev:切换到上一个文件。

:first:切换到第一个文件。

:last:切换到最后一个文件。

退出多文件

:wqall

:wall

:qall

:qall!

多窗口

-o:水平分割窗口。

-O:垂直分割窗口。

Ctrl+w:切换到下一个窗口。

Ctrl+w,s:在当前窗口水平切割出一个新的窗口。

Ctrl+w,v:在当前窗口垂直切割出一个新的窗口。

vim选项设置

/etc/vimrc:全局配置文件。

~/.vimrc:用户配置文件。

显示行号

:set number
:set nu
:set nonumber
:set nonu

后续示例只写配置全写和缩写。

自动缩进

autoindent,ai

高亮搜索

hlsearch,hls

增量搜索

incsearch,ic

语法高亮

syntax on
syntax off

忽略字符大小写

ignorecase,ic

制表符宽度

tabstop,ts

帮助

:help
:help subject

Vim-一款好用的文本编辑器的更多相关文章

  1. 【开发工具】- 推荐一款好用的文本编辑器[Sublime Text]

    作为一个程序员除了IDE外,文本编辑器也是必不可少的一个开发工具.之前一直在用的是NotePad++.EditPlus,这两款编辑器,但是总感觉差点什么,昨天在知乎上看到有人推荐Sublime Tex ...

  2. 命令工具 -(1)Vim 文本编辑器学习

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 前言 提起 Linux,大家都听说过这句话:Linux 一切皆文件. 配置一个服务就是在修改它 ...

  3. 文本编辑器VIM/VI

    vim/vi  功能强大全屏文本编辑器.主要是建立,编辑,显示文本. www.vim.org  构建shell脚本 :set number 使文件出现行号 a 光标后附件文件     i在光标前插入文 ...

  4. Vim,一个开放源代码的文本编辑器(转)

    Vim,http://linux.21ds.net/2002/03/13/0268dc26fd9c725c23dae68d797935f3/ 作者:Bram Moolenaar 翻译:slimzhao ...

  5. Linux系统 vi/vim文本编辑器

    Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...

  6. [No0000139]轻量级文本编辑器,Notepad最佳替代品:Notepad++

    在详细介绍Notepad++之前,先来解释一下,为何要选择Notepad++,即把常见的一些文本编辑器和Notepad++比较,看看其有哪点好: 常见的文本编辑器有很多,此处,只提及Notepad,N ...

  7. part1:6-Linux文本编辑器vi

    vi编辑器简介: vi是Linux系统的第一个全屏幕交互式编辑器:vim则是vi的升级版得到广大用户青睐. vim有三种工作模式:命令行模式.插入模式.底行模式 命令行模式常用功能键: yy:复制当前 ...

  8. 轻量级富文本编辑器wangEditor源码结构介绍

    1. 引言 wangEditor——一款轻量级html富文本编辑器(开源软件) 网站:http://www.wangeditor.com/ demo演示:http://www.wangeditor.c ...

  9. editplus文本编辑器

    EditPlus中文破解版是一款功能强大的文本编辑器,拥有无限制的撤消与重做.英文拼字检查.自动换行.列数标记.搜寻取代.同时编辑多文件.全屏幕浏览功能.还有一个好用的功能,就是它有监视剪贴板的功能, ...

随机推荐

  1. cetus系列~安装和基本配置

    cetus系列一 安装   1 安装软件环境   yum install cmake gcc glib2-devel flex mysql-devel gperftools-libs  bison f ...

  2. window系列

    1.关闭浏览器单个网页   ctrl+W 2.远程桌面连接  mstsc

  3. 修改BlackLowKey皮肤样式,增加占屏比

    页面定制CSS代码 #home { margin: 0 auto; width: 100%; } #sideBar { min-height: 200px; padding: 0 5px 0 5px; ...

  4. 集群下Dubbo负载均衡配置

    在集群负载均衡时,Dubbo提供了4种均衡策略,默认为Random(随机调用) 负载均衡策略: 1).Random LoadBalance(随机,按照权重的设置随机概率) 2).RoundRobin  ...

  5. python顺序执行多个py文件

    python顺序执行多个py文件 假如我要执行code目录下的python程序,假设该目录下有1.py,2.py,3.py,4.py四个文件,但是我想执行1.py,2.py,4.py,则可在该目录下创 ...

  6. git入门与实践【转】

    转自:http://www.cnblogs.com/shenhaocn/archive/2011/03/13/1982957.html 什么是版本控制 要了解什么是git,首先需要了解什么是版本控制( ...

  7. 3D中的OBJ文件格式详解

    常见到的*.obj文件有两种:第一种是基于COFF(Common Object File Format)格式的OBJ文件(也称目标文件),这种格式用于编译应用程序:第二种是Alias|Wavefron ...

  8. python根据服务名获取服务启动路径

    #coding=utf8 import _winreg as winreg class Win32Environment: """Utility class to get ...

  9. TortoiseSVN常用配置

    在Windows下推荐使用乌龟(Tortoise)SVN客户端. TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录. 文件保存在中央版本 ...

  10. maven项目有红叉,感叹号如何解决?

    红色感叹号,pom.xml文件有红叉 修改了Maven私服服务器的IP地址.可在Maven安装路径下的conf/setting.xml中修改ip地址,具体参照“开发工具”/maven.工程中class ...