原文地址: http://www.cnblogs.com/lizhenghn/p/3675011.html

在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用。作为一个新手,我也是刚刚接触,本节将我日常使用或收集的Vim常用命令记录下来。

当然,直接在命令行上输入:vimtutor,就可以学习到Vim的所有命令了。Vim很强大,很多牛人在vim里集成很多插件什么的,但这里只介绍基本vim命令。

移动命令

h      "左
j "下
k "上
l "右
w "光标移动到下一个单词的首字符 a word forward
b "光标移动到上一个单词的首字符
e "光标移动到下一个单词的尾字符
ge "光标移动到上一个单词的尾字符
$ "将光标移动到当前行行尾
^ "将光标移动到当前行第一个非空白字符
0 "将光标移动到当前行第一个字符

注:  这些命令除了'0'命令以外都可以在前面接受一个记数,2$;上面所有命令都可以在前面接受一些操作命令,如d$,dw等。

修改命令

x        "删除一个字符
d "其后跟任何一个位移命令,将删除从当前光标到位移终点处的文本
"内容,如dw,delete word
c "与d命令功能类似,不同的在执行完删除后命令进去Insert模式,change
dd "删除一整行
yy "复制一整行
p "把剪贴板内容粘帖到当前位置
vimdiff 1.c 2.c "创建一个垂直分割窗口比较这两个文件不同的地方

搜索命令

f<a>     "单字符搜索,fa是在当前行搜索下一个a,find a
/string "全文本搜索一个字符串,如要找到单词"func"则用/func
"如果文本有多个func,按下n就会移动到接下来的func位置上
"n前面也可以接受数字计数,如3n,就会找紧接第三个func
?string "与/string的功能相同,唯一的区别就是搜索的方向相反

注:

  1. 可以用:set noingorecase 忽略字符大小写;
  2. /和?命令都有记忆功能,可以用多次<UP>键选择搜索历史,记录命令最大的历史条数可以在会话viminfo上更改;
  3. 搜索字符.*/?%$^[]等特殊字符要在前面加一个反斜杠转意;
  4. 搜索到孤立的单词,也就是前后都没有其他字符的(除了空格,制表符),如只搜the,不想搜到there或whether这样的,要用/\<the\>;
  5. 可以用:set hlsearch把要搜索的单词高亮显示;

定位命令

G      "光标移动到文件的最后一行,或者Shift+G
15G "光标移动到文件的第15行,或者15gg
gg "光标移动到文件的第一行
45% "光标移动到文件45%处
H "光标移动到当前屏幕的最开始
M "光标移动到当前屏幕的中间
L "光标移动到当前屏幕的最后

注:  CTRL+g查看当前光标位置

滚屏命令

CTRL+U  "窗口向上滚半屏
CTRL+D "窗口向下滚半屏
CTRL+E "向上滚一行,没太大实际意义
CTRL+Y "向下滚一行
CTRL+F "向前滚一整屏
CTRL+B "向后滚一整屏
zz "当前行置于屏幕中央
zt "当前行置于屏幕顶端
zb "当前行置于屏幕底端

分割窗口

:split    "横着分割
:new "横着添加一个新窗口
:vsplit "竖着分割
:vnew "竖着添加新窗口
CRTL+W w "按顺序切换小窗口
:qall "关闭所有窗口
:wall "保存所有窗口

标签(tab)命令

:tabedit filename "在正在编辑的vim窗口建一个叫filename的tab页
:tab split "新建一个tab页
gt "移动到下一个tab页
gT "移动到下一个tab页

暂时就这么多了,以后学习到新的命令了还会持续更新的。

另外高级的Vim命令请参考:

简明 Vim 练级攻略

无插件Vim编程技巧

Linux下Vim工具常用命令的更多相关文章

  1. [日常] Linux下vim的常用命令总结

    vim按d表示剪切按dd剪切一行vim命令:命令模式 /关键字 n继续向下查找 vim的多行注释:1.按ctrl + v进入 visual block模式2.按上下选中要注释的行3.按大写字母I,再插 ...

  2. linux下vim的常用指令

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  3. 查看Linux下系统资源占用常用命令(top、free、uptime)

    本文介绍下,在linux中查看系统资源占用的三个命令:top.free.uptime,通过实例学习下它们的用法,有需要的朋友参考下 一,top命令 1.作用top命令用来显示执行中的程序进程,使用权限 ...

  4. 查看Linux下系统资源占用常用命令

    一 top命令 1.作用top命令用来显示执行中的程序进程,使用权限是所有用户. 2.格式top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数d:指定更新的 ...

  5. Linux下C++开发常用命令

    本页面记录本人在Linux下进行C++开发时使用的常用命令,注意这里不包括比如ls,mv等linux命令,这里会持续更新.首先假设你只有一个源程序文件,叫vec.cpp,编译后的可执行程序叫vec(本 ...

  6. Linux下的一些常用命令(一)

    在Linux环境下敲各种命令是再正常不过了,尤其是现在大多少服务器均为Linux系统,但是我又记不住这么多命令,只是偶尔在项目做完发布到服务器上的时候会涉及到,所以在网上找了一些命令,在此记录一下~ ...

  7. 总结Linux 下Redis 操作常用命令(转)

    Redis的配置 Linux下安装 ]# wget http://download.redis.io/releases/redis-2.8.17.tar.gz ]# tar xzf redis-2.8 ...

  8. Linux下安装maven-及常用命令

        Linux下安装maven1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令: 2. ...

  9. Linux下一些简单常用命令的总结

    Cent os常用命令 查看当前目录信息: l s a:显示所有包括隐藏文件 l :列表显示数据 h:显示数据大小 查看命令帮助: XXX --help[比如:l shel p] 清除控制台信息: c ...

随机推荐

  1. C语言深入学习系列 - 字节对齐&内存管理

    用C语言写程序时需要知道是大端模式还是小端模式. 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中:所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高 ...

  2. JavaScript备忘录-闭包

    var arr = new Array(); function Person() { for (var i = 0; i < 10; i++) { //要记住,这个属性函数申明,只有立即执行才会 ...

  3. android学习—— context 和 getApplicationContext()

    一直看到好多应用里面,随手使用getApplicationContext(),不想说也不乐意说,今天转载一篇文章区分两者的区别: 在android中常常会遇到与context有关的内容 浅论一下con ...

  4. CXF之七 传输文件

    CXF的文件传输通过MTOM实现.MTOM(SOAP Message Transmission Optimization Mechanism)SOAP消息传输优化机制,可以在SOAP消息中发送二进制数 ...

  5. IOS release 版本的时候 去掉输出log NSLog

    在.pch文件中添加下面一段 #ifndef __OPTIMIZE__ #define NSLog(...) NSLog(__VA_ARGS__) #else #define NSLog(...) { ...

  6. csv文件与DataTable互相导入处理

    封装处理下,以后项目用到可以直接使用,比较简单. 1.首先看封装好的类 using System; using System.Data; using System.IO; using System.T ...

  7. 安装nagios出现的两个错误记录

    最近在安装nagios,出现几个错误记录: 一 检查nagios配置的时候出现错误如下: Warning: Duplicate definition found for host 'kelly' (c ...

  8. 关于自然常数e的理解

    关于自然常数\(e\)的理解 By Z.H. Fu 切问录 ( http://www.fuzihao.org ) 利息增长模型 在上中学学习对数的时候,我们就学到了一个叫做e的东西(\(e\appro ...

  9. 集合-Collection

    集合中存放的依然是对象的引用,而不是对象本身 ArrayList: 1) ArrayList底层使用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的O ...

  10. .net组件技术

    .NET是什么? •.NET是一个平台,而不是一种语言. •.NET是Microsoft的用以创建XML Web服务(下一代软件)平台,该平台将信息.设备和人以一种统一的.个性化的方式联系起来.   ...