【简介】

Vim是vi编辑器的改进版。vi是类UNIX系统里最常用的编辑器。

【模式】

在shell中直接打vim filename就会进入普通模式。按i键进入编辑模式,此时Vim底部显示INSERT表示可以编辑内容了。按Esc键退出编辑模式,按:切换到命令模式。

【常用命令】

进入vi

vi filename   打开或新建文件,并将光标置于第一行首

vi +n filename  打开文件,并将光标置于第n行首

vi + filename  打开文件,并将光标置于最后一行首

vi +/pattern filename  打开文件,并将光标置于第一个与pattern匹配的串处

vi filename....filename  打开多个文件,依次进行编辑

vi -r filename  在上次正用vi编辑时发生系统崩溃,恢复filename

从光标开始处向文件尾搜索。比如搜user  按Esc再按/user

从光标开始处向文件首搜索。  ?user

在同一方向重复上一次搜索命令  n

在反方向重复上一次搜索命令  N

查看某行  :行号

撤销上次操作  u

代码自动补全  Ctrl+n

删除当前字符  x或DEL键  (删除内容保存在缓冲区。x删除光标后的,X删除光标前的)

删除当前行  dd  (删除内容保存在缓冲区)

删除当前光标至行尾的所有内容  d$

删除从当前行至文件末尾的所有行  dG

删除至当前行首  d0

左右字符互换  xp

上下两行内容互换  ddp

把当前行复制到缓冲区  y

把缓冲区中的文本插入到当前位置  p

把当前行复制到a缓冲区(可用26个字母命名多个缓冲区)  ay

把a缓冲区中的文本插入当前位置  ap

上下两行合并成一行  J

重复执行上次执行的命令  .

复制粘贴一整行。假如光标在行首,要复制一行,先按Esc到命令模式,再按yy,再按p,就在该行下面复制粘贴了一整行。或者V选择拷贝内容(一行高亮),Y拷贝,P粘贴到新地方。

复制粘贴某一区间。光标移动到想要复制的字符下,按Esc,按v进入visual模式(可用高亮的色块选择内容),按左右键移动到想要复制的字段末尾,按y复制,光标移动到想要粘贴的地方,按p粘贴。

对比2个文件  vimdiff file1 file2

移动光标类命令

h  j  k  l

左  下  上  右

nk  向上移动n行

nj  向下移动n行

nh  向左移动n列

nl  向右移动n列

$  光标移动到当前行行尾

G  光标移动到文档最后一行开头

H  光标移动到当前屏幕首行开头

L  光标移动到当前屏幕末行开头

M  光标移动到当前屏幕中间行开头

{  光标上移一个段落

}  光标下移一个段落

(  光标移动到句首

)  光标移动到句尾

w或W   光标右移一个字至字首

b或B   光标左移一个字至字首

e或E   光标右移一个字至字尾

nG  光标移至第n行首

n+  光标下移n行

n-  光标上移n行

n$  光标移至第n行尾

0  (注意是数字零)光标移至当前行首

插入文本类命令

i  在光标前

I  在当前行首

a  光标后

A  在当前行尾

o  在当前行之下新开一行

O  在当前行之上新开一行

r  替换当前字符

R  替换当前字符及其后的字符,直至按ESC键

s  从当前光标位置处开始,以输入的文本替代指定数目的字符

S  删除指定数目的行,并以所输入文本代替之

ncw或nCW  修改指定数目的字

nCC  修改指定数目的行

命令模式下

:q!  不保存退出vim

:w  保存文档,不退出vim

:x  保存并退出

:! command  运行shell命令

:r! command  将命令cmmand的输出结果放到当前行

:e filename  编辑/打开一个文件

:s/one/two  在当前行中把第一个one替换成two

:s/one/two/g  把当前行中所有的one替换成two

:%s/one/two/g  在全局范围内把one替换成two

:n1,n2s/one/two/g  将第n1行至n2行中所有的one替换成two

:tabe  新建一个标签页

:close  关闭当前标签页

:tabp  切换到上一个标签页

:tabn  切换到下一个标签页

:qa  关闭所有标签页并退出

:set number  列出行号  

:reg  列出缓冲区内容

:set all  列出所有参数的配置情况 

:set ignorance  设置在搜索中忽略大小写 

:set nowrapscan  禁止vi在搜索到达文件两端时,又从另一端开始

:set warn  在转到别的文件时若没保存当前文件则显示NO write信息 

:n1,n2 d   将n1到n2行之间的内容删除  

:n1,n2 co n3  将n1行到n2行之间的内容拷贝到第n3行下

:n1,n2 m n3  将n1行到n2行之间的内容移至到第n3行下

屏幕翻滚类命令

Ctrl+u  向文件首翻半屏

Ctrl+d  向文件尾翻半屏

Ctrl+f  向文件尾翻一屏

Ctrl+b  向文件首翻一屏

nz  将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部

【vimrc配置】

在命令模式下用set命令设置的东西是不能保存的,下次打开vim时又要重新设置。所以vim提供了一个配置文件叫vimrc,可以保存自定义的配置信息。该文件在Debian系统中位于/etc/vim/目录下。在该文件中,以双引号开头的是注释。

set autoindent

自动缩排,如当前行是从第3个字符的位置开始编辑的,按回车后光标会自动定位在下一行第三3个字符的位置。

set paste

置粘贴模式,这样粘贴过来的程序代码就不会错位了。

打开文件时自动回到上次编辑位置。

if has("autocmd")
autocmd BufRead *.txt set tw=
autocmd BufReadPost *
\ if line("'\"") > && line ("'\"") <= line("$") |
\ exe "normal g'\"" |
\ endif
endif

Vim的常用命令笔记的更多相关文章

  1. Linux 常用命令笔记

    Linux 常用命令笔记 1. locate locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 upd ...

  2. Linux常用命令 笔记

     Linux常用命令  笔记 一.文件处理命令 1. ls命令:显示目录文件                          -a 显示所有文件,包括隐藏文件.(all)               ...

  3. vim最常用命令

    vi/vim常用命令汇总 vi/vim概述 vi/vim是Linux和Unix下的一款非常强大的编辑器,vim是vi的增强 版,命令更加多种和复杂,但是最常用的也就是那几个. vi有三种模式 命令行模 ...

  4. Linux下Vim工具常用命令

    原文地址: http://www.cnblogs.com/lizhenghn/p/3675011.html 在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚 ...

  5. VIM一些常用命令,方法,配置

    配置文件地址 github 工具只是为了更好的工具,选择一种,坚持使用学习记忆,熬过瓶颈期就可以了. 现在我基本大的项目是IDE+vim 插件,写小代码是VIM. 常用的操作,便捷的方法 1.如何选中 ...

  6. Linux环境下vi/vim编辑器常用命令

    使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式.那么如何使用Linux字符操作界 ...

  7. vim 编辑器常用命令

    vi 常用命令行 1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下‘i,I,o ...

  8. 10 分钟上手 Vim,常用命令大盘点

    传闻有 180 万的程序员不知道如何退出 Vim 编辑器,真的有这么困难吗?下面给大家整理了一份 Vim 常用命令,让你 10 分钟快速上手 Vim,溜得飞起! 以下命令请在普通模式执行 1.移动光标 ...

  9. vim操作常用命令总结

    这里记录下linux在vim编辑器中的常用命令 vi 的三种模式: 一般模式:以vi打开一个文件时,就是一般模式:可以移动光标,删除字符或删除整行,可以复制.粘贴等操作 编辑模式:在一般模式按下 i ...

随机推荐

  1. Visual C++ 6.0编程环境的使用

    1.1 编制并运行程序的四部曲 (1)编辑(把程序代码输入,交给计算机). (2)编译(成目标程序文件.obj).编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟 ...

  2. 最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)

    Dijkstra算法 ———————————最后更新时间:2011.9.25———————————Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径. ...

  3. (C)单链表

    老师版 #include <stdio.h> #include <stdlib.h> // 定于Node数据类型 struct Node { int data; // 数据域 ...

  4. 转:用JS判断IE浏览器的版本(-- 很巧妙实用的方法)

    ~~在看到这篇文章之前如果让我来判断IE的版本,那么我基本上会用 navigator.userAgent去做字符串检索,现在觉得特性检测的确比较靠谱一点 今天一个项目中需要判断IE版本号,又因为 jQ ...

  5. PCB设计铜铂厚度、线宽和电流关系

    以下总结了网上八种电流与线宽的关系公式,表和计算公式,虽然各不相同(大体相近),但大家可以在实际的PCB板设计中,综合考虑PCB板的大小,通过电流,选择一个合适的线宽. 一.PCB电流与线宽 PCB载 ...

  6. QListWidget 去掉选中项

    1.先去掉选中项的虚线框: 设置为无焦点:把FocusPolicy设置成:NoFocus 2.设置QListWidgetItem标志 调用setFlags函数,去掉Qt::ItemIsSelectab ...

  7. skin++ 终极破解之法

    *[标题]:Skin++通用界面换肤系统V2.0.1破解探讨 *[作者]:gz1X <gz1x(at)tom(dot)com> *[来自]:中国黑客联盟 *[前言]: skin技术,大家都 ...

  8. C++数据结构之图

    图的实现是一件很麻烦的事情,很多同学可能在学数据结构时只是理解了图的基本操作和遍历原理,但并没有动手实践过.在此,我说说我的实现过程. 首先,在草稿纸上画一个图表,这里是有向图,无向图也一样,如下: ...

  9. css 基础(一)

    一.css样式表的分类 首先介绍一下css中的样式表  a.外部样式表  将需要的样式放在单独的外部文件中,需要使用是直接调用,通常放在.css文件中.例如:/*以下部分是放在(my.css)自定义名 ...

  10. dhtmlx之dhtmlXGrid显示数据

    引用 <link href="../../dhtmlXGridScripts/dhtmlxgrid.css" rel="stylesheet" type= ...