VI/VIM 常用命令
===========

整理自鸟哥的私房菜

----------

- 移动光标

命令                    | 描述
------------------------|------------------------------------------
h                       |   光标向左移动一个字符
j                       |   光标向下移动一个字符
k                       |   光标向上移动一个字符
l                       |   光标向右移动一个字符
ctrl+f                  |   向下移动一页
ctrl+b                  |   向上移动一页
ctrl+d                  |   向下移动半页
ctrl+u                  |   向上移动半页
+                       |   光标移到下行的行首的非空字符处
-                       |   光标移到上行的行首的非空字符处
n<space>                |   光标向右移动n个字符
0                       |   光标移到到该行的行首
$                       |   光标移到到该行的行尾
H                       |   光标移动到该屏首行的首字符处
M                       |   光标移动到该屏中央的首字符处
L                       |   光标移动到该屏最后一行的首字符处
G                       |   光标移动到该文档最后一行的首字符处
nG                      |   光标移动到该文档第n行的首字符处
gg                      |   光标移动到该文档第1的首字符处,相当于1G
n<Enter>                |   光标向下移动n行

- 搜索与替代

命令                    | 描述
------------------------|------------------------------------------
/word                   |   从光标所在处向下搜索word
?word                   |   从光标所在处向上搜索word  
n                       |   重复前一个搜索动作
N                       |   反向进行前一个搜索动作
:n1,n2s/word1/word2/g   |   在第n1,n2行之间搜索word1,并将其替代为word2
:1,$s/word1/word2/g     |   在第1,最后一行之间搜索word1,并将其替代为word2
:1,$s/word1/word2/gc    |   在第1,最后一行之间搜索word1,并将其替代为word2,替代需要确认

- 删除、复制与粘贴
 
命令                    | 描述
------------------------|------------------------------------------
x,X                     |   x为向后删除一个字符,X为向前删除一个字符
nx                      |   向后删除n个字符
dd                      |   删除光标所在行
ndd                     |   向下删除n行
d1G                     |   删除光标所在行到第一行的所有内容
dG                      |   删除光标所在行到最后一行的所有内容
d$                      |   删除光标所在处到该行行尾的所有内容
d0                      |   删除光标所在处之前的内容
yy                      |   复制光标所在行
nyy                     |   向下复制n行
y1G                     |   复制光标所在行到第一行的所有内容
yG                      |   复制光标所在行到最后一行的所有内容
y$                      |   复制光标所在处到该行行尾的所有内容
y0                      |   复制光标所在处之前的内容
p,P                     |   p为在下一行粘贴复制的内容,P为在上一行
J                       |   将光标所在行与下一行合并为同一行
c                       |
u                       |   撤销前一个动作
ctrl+r                  |   重做上一个动作
.                       |   重复前一个动作

- 模式切换
 
命令                    | 描述
------------------------|------------------------------------------
i,I                     |   i为在光标所在处插入,I为在光标所在行的第一个非空字符处插入
a,A                     |   a为在光标所在处的下一个字符串插入,A为在光标所在行的最后一个字符串插入
o,O                     |   o为在光标所在行的下一行插入新行,O为光标所在行的上一行插入新行
r,R                     |   r为取代光标所在处的字符一次,R会一直取代光标所在处的字符直到ESC
esc                     |   退出编辑模式,回到一般指令模式
 
- 保存与离开
 
命令                    | 描述
------------------------|------------------------------------------
:w,:w!                  |   :w为保存,:w!为强制保存
:q,:q!                  |   :q为离开,:q!为强制离开
:wq,:wq!                |   :wq为保存后离开,:wq!为强制保存离开
ZZ                      |   文档未改变,则不保存离开。有改变,则保存离开
:w filename             |   另存为 
:r filename             |   将filename的内容添加到光标所在行的后面
:n1,n2 w filename       |   将n1到n2行的内容保存到filename中 
:! command              |   暂时离开vi,执行command命令

- 设置环境变量
 
命令                    | 描述
------------------------|------------------------------------------
:set nu                 |   显示行号
:set nonu               |   不显示行号

----------

VI/VIM 常用命令的更多相关文章

  1. vi/vim 常用命令总结

    目录 Linux vi/vim编辑 vim键盘图 vim的三种模式 命令模式.输入模式.输出模式 vim使用实例 vi/vim按键说明 第一部分:一般模式可用的光标移动.复制粘贴.搜索替换等 第二部分 ...

  2. Vi/Vim常用命令(附快捷切换方法)

    vi/vim有两种模式,正常(命令行)模式 和编辑模式,在命令行模式下,任何键盘输入都是命令,在编辑模式下,键盘输入的才是字符. 启动/关闭Vi/Vim 启动:vi 打开 Vi/Vim编辑器vi 文件 ...

  3. 【转】VI/VIM常用命令

    原文网址:http://www.blogjava.net/woxingwosu/archive/2007/09/06/125193.html Vi是“Visual interface”的简称,它在Li ...

  4. vi/vim常用命令总结

    vim是vi的升级模式,完全兼容vi 解决vim打开中文乱码问题 编辑/etc/vim/vimrc配置文件,添加下面的内容: ''' set fileencodings=utf-8,ucs-bom,g ...

  5. linux vi(vim)常用命令汇总(转)

    前言 首先解析一个vim vi是unix/linux下极为普遍的一种文本编辑器,大部分机器上都有vi的各种变种,在不同的机器上常用不同的变种软件,其中vim比较好用也用的比较广泛.vim是Vi Imp ...

  6. linux vi(vim)常用命令汇总

    1 查找 /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找其中xxx可以是正规表达式,关于正规式就不多说了. 一般来说是区分大小写的, 要想不区分大 ...

  7. vi/vim 常用命令 之 一图定天下!

    直接上干活,一张图解决~

  8. Linux(Ubuntu)常用命令(五)—— vi/vim常用操作

    vi/vim常用命令 vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别. 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管 ...

  9. Vim常用命令总结

    Vim常用命令总结: 下文是小编自己整理的关于日常linux vim编程过程中用的一些常用命令,资料参考鸟哥的 如果有需要的小伙伴可以参考一下!(底部有下载地址) 一. 一般模式可用的按钮说明 1.1 ...

随机推荐

  1. HTTP状态码含义

    本文内容是在有道云笔记中找到的,已不知复制自何处,抱歉 一些常见的状态代码为:200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器暂时不可用   1xx(临时响应) 用于表 ...

  2. android 一些数据转换方法

    android 一些数据转换方法 package com.ai9475.util; import android.content.Context; import android.content.res ...

  3. hdu1025

    #include<stdio.h>const int MAXN=500010;int a[MAXN],b[MAXN]; //用二分查找的方法找到一个位置,使得num>b[i-1] 并 ...

  4. noip2015Day2T1-跳石头

    题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有N ...

  5. 数据库 Mysql内容补充一

    mysql时间函数 --获取当前日期 select current_date(); --获取当前时间 select current_time(); --获取当前的日期和时间 select now(); ...

  6. Java jvm 原理

    1.Java语言运行的过程 Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行. 也相当与 ...

  7. 大数据时代之hadoop(六):hadoop 生态圈(pig,hive,hbase,ZooKeeper,Sqoop)

    hadoop是有apache基金会所开发的分布式系统基础架构,其主要提供了两方面的功能:分布式存储和分布式计算. 其中分布式存储是分布式计算的基础,在hadoop的实现里面,提供了分布式存储的接口,并 ...

  8. UVa 679 Dropping Balls (例题 6-6)

    传送门:https://uva.onlinejudge.org/external/6/p679.pdf 题意:在一颗结点带开关的完全二叉树上扔球,初始时开关为关闭状态,树的深度为D(1 <= D ...

  9. spring ,mybatis多数据源

    同一个项目有时会涉及到多个数据库,也就是多数据源.多数据源又可以分为两种情况:   1)两个或多个数据库没有相关性,各自独立,其实这种可以作为两个项目来开发.比如在游戏开发中一个数据库是平台数据库,其 ...

  10. 用makecert.exe生成一个自签名的证书

    makecert.exe不用去找,安装VS2008后,在开始菜单相应的路径找到该命令提示符:Microsoft Visual Studio 2008/Visual Studio Tools/Visua ...