1 插入类命令
i               // 在当前字符前插入
I               // 在当前行首插入
a               // 在当前字符后写入
A              // 在当前行尾写入 
o               // 在当前行下面新增一行
O              // 在当前行上面新增一行
r               // 替换当前字符,替换之后立即退出编辑模式变成命令模式
R              // 从当前字符开始替换,知道按ESC才退出编辑模式变成命令模式
ESC          // 退出编辑模式,进入命令模式
2 移动类命令
h              // 左移
j               // 下移
k              // 上移
l               // 右移
0              // 移动到本行第一个字符
$              // 移动到本行的最后一个字符
G              // 移动到最后一行
gg            // 移动到第一行
ctrl + f      // 向下翻一页
ctrl + b     // 向上翻一页
H              // 移动到屏幕最上方那一行的第一个字符
M             // 移动到屏幕中间那一行的第一个字符
L               // 移动到屏幕最下方那一行的第一个字符
3 搜索替换类命令
/word       // 向后搜索word
n               // 继续向后搜索下一个
N              // 继续向前搜索下一个
:%s/w1/w2/g       // 全文档把搜索w1替换为w2,如果不加g,则只替换每行的第一个匹配
:1,10s/w1/w2/g    // 在1~10行内搜索w1替换为w2
:8,$s/w1/w2/gc    // 从第八行到最后一行搜索w1替换为w2,并且请求确认
4 删除复制粘贴类命令
x               // 删除当前字符
nx             // 向后删除n个字符
dd            // 删除当前行
ndd          // 从当前行开始,删除n行,包括当前行
dgg          // 删除当前行到开始行
dG            // 删除当前行到结束行
d$            // 删除当前字符到行尾
d0            // 删除到行首,但不删除当前字符
yy             // 复制当前行
nyy           // 从当前行向下复制n行
ygg          // 复制当前行直到第一行
yG            // 复制当前行直到最后一行
y0             // 复制到行首,但是不包括当前字符
y$             // 从当前字符复制到行尾
p               // 在下一行粘贴,如果不是复制了整行,则是在当前字符后面粘贴
P               // 大写P,在上一行粘贴,如果不是复制了整行,则在当前字符前面粘贴
u               // 还原前一个动作,历史向后退
ctrl + r      // 重做上一个动作,历史向前进
.                // 重复前一个动作
5 存储退出类命令
:w              // 将编辑的内容写入
:w!           // 当为只读时,强制写入,但不一定能成功
:q               // 退出vim
:q!            // 强制退出vim而不保存数据
:wq             // 写入,然后退出
:wq!            // 强制写入,然后退出
:w  newfile  // 另存为文件,但是仍旧在编辑当前文件,和ms  word不同
:n1,n2 w  newfile  // 把n1到n2另存到newfile,但仍编辑当前文件
:r   filename // 读入filename中内容,添加到当前行下面
:! cmd        // 暂时离开vim界面,执行cmd命令,退出命令之后仍然回到vim
:r ! cmd      // 把cmd执行的输出,写到当前行下面
:set nu          // 显示行号
:set nonu     // 不显示行号
6 选择类命令
v                   // 字符选择,会把光标所经过的字符反白选择
V                   // 行选择,会把光标经过的行反白选择
ctrl + v          // 选择一个长方形的区域
y                    // 复制选择的区域
d                   // 删除选择的区域
r                    // 把选中区域全部字符替换为某个字符
I                     // 前面插入整列
A                    // 后面插入整列
7 多文档编辑
vim支持同时编辑多个文档,方便文档见内容互相拷贝。vim编辑多个文档,相当于在内存中,也存在多个文档。在编辑多个文档时,多个文档之间的某些vim命令是共享的,例如在文档1执行了搜索,在文档2中可以执行n继续搜索。在文档1中yy在文档2中可以p。在文档1中执行了退出命令,则两个文档都退出了。
:n                  // 编辑下一个文档,需要先保存当前编辑文档
:N                  // 编辑前一个文档
:files              // 列出当前vim打开的所有文档  
8 多窗口编辑
对于同一个文档,如果拆分成多个窗口,则在内存中只有一份文档,两个窗口只是显示部分不同而已,对应的是内存中同样的文档,在任何一个窗口中写入数据,另一个窗口也会显示。
对于不同的文档,两个窗口则分别显示了内存中不同的缓存区域。但是两个文档之间的某些vim命令是共享的,例如搜索,复制等等。但是w和q命令并不共享。
sp                  // 把当前文档分为两个窗口来显示
sp  newfile    // 新增一个窗口显示另一个文档
ctrl + w + j    // 移动到下面的窗口
ctrl + w + k   // 移动到上面的窗口
9 vim设置
在家目录中,自动生成  .viminfo文件,用来保存操作历史,以便在下次打开文档的时候,能快速重现文档的最后状态。
对所有用户都生效的vim设置放置在/etc/vimrc中,一般不做修改。
个性化的设置,可以放在 ~/.vimrc中。 vim在启动时,首先会执行 /etc/vimrc中的配置命令,然后执行 ~/.vimrc中的配置命令。
10 字符编码
编码,即把有含义的文字和符号转换成数据来表示。
解码,即把数据解释为有含义的文字和符号。
 
~/.vimrc中可以设置规则:
set  encoding=utf-8                      // 设置vim的内部编码规则是utf-8,即内存中存放的数据是按照utf-8编码规则转换而来的
set  fileencodings=utf-8,gb2312  // 设置vim怎样理解文件的编码规则
 
在使用vim打开文件后,如果想查看文件的编码规则,可以使用
  :set  fileencoding 
如果想更改文件的编码规则,则可以使用
 :set  fileencoding=XXX
w保存文件后,文件的编码格式就改变了(慎重使用)。
也可以使用iconv命令,转换文件的编码规则。

vim使用详解的更多相关文章

  1. vim 命令详解

    vi: Visual Interface 可视化接口vim: VI iMproved VI增强版 全屏编辑器,模式化编辑器 vim模式: 编辑模式(命令模式) 输入模式 末行模式 模式转换: 编辑-- ...

  2. vim编辑器详解

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率. vi是“visual interface”的 ...

  3. linux下vim命令详解 转自: zhanglong0426

      高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器xq     退出记录模式@x     播放记录在x寄存器中的 ...

  4. linux下vim命令详解

    高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的::qx     开始记录宏,并将结果存入寄存器xq     退出记录模式@x     播放记录在x寄存器中的宏命令 ...

  5. 【CNMP系列】VIM编辑器详解

    缘起 大学的时候做过Linux内核驱动程序研发,之前写C语言就是用的Vim编辑器,当年的Vim还不如今天之强大,当时的插件也没有现在这么多,只是觉得这个编辑器能满足我想要的所有,查看Linux内核代码 ...

  6. vim基础详解

    目录: 什么是vim Vim能做什么 如何学习vim 如何用vim打开一个文件 Vim的三种模式 插入模式 命令模式 扩展命令模式 光标移动 在命令模式下 删除,复制,粘贴 扩展命令模式 可视化模式 ...

  7. vim编辑器详解(week1_day3)--技术流ken

    vi编辑器 作用:编辑文本文件中的内容的工具 命令历史 末行模式中,以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 v ...

  8. vim命令详解

    VIM编辑常用技巧 vim编辑器 简介: vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi V ...

  9. VIM 正则表达式详解及与 perl 正则的区别

    转载自:http://www.xuebuyuan.com/806332.html:个人进行了一些修正和添加. 下面我们对 VIM 正则表达式进行介绍并会显示指出其与 Perl 正则的不同之处. 字符集 ...

随机推荐

  1. extjs实现多国语音切换

    http://kuyur.info/blog/archives/2490 http://blog.chinaunix.net/uid-28661623-id-3779637.html http://b ...

  2. [转]强悍的跨平台开源多媒体中心XBMC介绍

    [转]强悍的跨平台开源多媒体中心XBMC介绍 http://www.cnblogs.com/mythou/p/3220898.html 最近都在了解Android下的音视频,因为最近需要做一个多媒体中 ...

  3. 17.Quartus 怎么回读CPLD里面的东西

    可以使用Quartus® II Programmer的“Examine”特性回读编程目标文件(.POF)是CPLD不是FPGA 先用auto检测加没加加密位,然后执行ex,然后save,Examine ...

  4. ASP.NET Web API 入门大杂烩

    [前言] 本文是大杂烩,意思即是:到处Copy再加一点点思考而混在一起的文章,引用来源因为太多太杂故而省略,望原作者原谅. [概述] ASP.NET Web API随ASP.NET MVC 4一起发行 ...

  5. [SSH服务]——一个SSH无密码登陆实验

    实验拓扑图 实验描述 机房内有两台服务器: (1)B服务器10.0.10.158,充当Web服务器,有普通用户user_00 (2)C服务器10.0.10.191,充当Mysql服务器,有普通用户us ...

  6. Ionic 2 Guide

    Ionic 2 Guide 最近一直没更新博客,业余时间都在翻译Ionic2的文档.之前本来是想写一个入门,后来觉得干脆把官方文档翻译一下算了,因为官方文档就是最好的入门教程.后来越翻译越觉得这个事情 ...

  7. java读取资源文件

    ResourceBundle bundle = ResourceBundle.getBundle("cn.liuning.resource.MessageResource"); b ...

  8. 丢掉 WinPE,使用 DISKPART 来分区吧

    自 Windows Vista 之后的操作系统,如果在安装系统的时候使用 Windows 自带的分区功能,则会多出一个 100M 的系统保留分区.这会让一个物理硬盘,原先最多可以分 4 个主分区的,现 ...

  9. 团队开发——SCRUM报告(一)

    一.成员介绍 队长:胡亚宝 PM:曹美娜 成员:焦燕.袁亚姣.黄亚萍 二.sprint会议 由于之前是一五一小长假,所以距离上次会议中间隔了很长时间,这里在对上次会议做一下简单的汇总 在上次会议上我们 ...

  10. 玩耍Hibernate系列(二)--基础知识

    Hibernate思维导图   Hibernate映射 关于hibernate的映射要说明的一点就是关于ID的访问权限,peroperty以及field的区别: 表的主键在内存中对应一个OID对象描述 ...