vim - vi 增强版。文本编辑器

格式:vim [options] [file ..]

说明:如果file存在,文件被打开并显示内容,如果文件不存在,当编辑后第一次存盘时创建它

[options]常用选项:

vim +[num] :直接进入到编辑文挡的第num行

vim +  :直接进入到最后一行

vim +/PATTERN :直接跳转到模式PATTERN第一次匹配到的行

vim -m  :只读方式打开文件

vim -d file1 file2... :打开编辑多个文件

vim的三种模式:

  命令模式:默认模式,移动光标,剪切/粘贴文本等

  输入(编辑)模式:修改文本

  末行(扩展)模式:保存,退出,查找等

模式切换:

1、命令式 to 输入模式

i:在当前光标所在处输入:

I:在当前光标所在行的行首

a:在光标所在处的后面输入

A:在当前光标所在行的行尾输入

o:在光标所在行的下方新增一个空白行输入

O:在光标所在行的上方新增一个空白行输入

2、  输入模式 to 命令模式:

按ESC键

3、  命令模式 to 末行模式:

按:键

4、末行模式 to 命令模式

按两次ESC键

命令模式的常用快捷键

       1、光标移动

字符间跳转:

h:左     l:右      j:下      k:上

#[h | l | j | k ]:跳转#个字符

单词键跳转

w:跳至后一个单词的词首

b:跳至当前或前一个单词的词首

e:当前或下一个单词的词尾

当前页面跳转:

H:当前屏幕的最上面

L:当前屏幕的最下面

zt:将光标所在行移动到屏幕顶端

zz:将光标所在当前行移动到屏幕中间

zb:将光标所在行移动到屏幕底端

行内移动:

0:数字0绝对行首

^:第一个非空白字符

$:绝对行尾

行间移动:

#G     跳转到#行

#gg    跳转到#行

G:最后一行

1G:第一行

gg:第一行

句子间移动:

):

(

段落间移动:

{

}

翻屏操作:

Ctrl+f:向文件尾部翻一屏

Ctrl+b:向文件首部翻一屏

Ctrl+d:向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏

       2、编辑操作

字符编辑

x或DEL键:删除光标所在处字符

#x:删除光标所在处开始后的#个字符

xp:交换光标所在处的字符及后面字符的位置

~:大小写转换

J:删除当前行末尾的换行符

替换命令:

r:替换光标所在处字符,输入一个字符进行替换,可用于单词拼写错误情况

R:切换成REPLACE模式

删除命令

d:删除命令

结合各光标跳转命令使用

d$:删除光标所在位置一直到行尾所有字符(包括光标所在字符)

d^:删除光标所在位置一直到行首所有字符(不包括光标)

d0:删除到行首

dw:删除到后面第一个单词词首

de:删除到后面第一个单词的词尾

db:删除到前面第一个单词词首

dd:删除一行

#dd:删除光标所在处以下N行

dG:删除到文档尾部

dgg:删除到文档首部

c:改变,删除以后直接进入插入模式

c$:删除光标所在位置一直到行尾所有字符(包括光标所在字符)

c^:删除光标所在位置一直到行首所有字符(不包括光标)

c0:删除到行首

cc:删一行

#cc:删除光标所在处以下N行

y:yank,复制

yy:复制1行

#yy:复制#行

p:paste,粘贴yy复制的内容或者dd删除的内容

复制或删除的是整行

p:粘贴在光标所在行的下方

P:粘贴在光标所在行的上方

复制或删除的为非整行

p:粘贴在光标所在字符的后面

P:粘贴在光标所在字符的前面

撤销编辑:

u:undo

#u

U:撤销光标落在这行后所有此行的更改

恢复撤销:

Ctrl+r,和u意义相反

       重复执行此前的命令:"."

       重复签一个操作N次:"N."

       命令模式特殊用法:

100iwang[ESC]粘贴“wang”100次

<start position><command><end position>

Command:

y复制、d删除、gU变大写、gu变小写

例如:0y$命令意味着:

0->先到行头

y->从这里开始拷贝

$->拷贝到本行最后一个字符

ye从当前位置拷贝到本单词的最后一个字符

di  "光标在" "之间,则删除这行中" " 之间的内容,可以是多种符号" ' () [] {} 等等

yi   光标在()之间,则复制()之间的内容

vi[  光标在[]之间,则选中[]之间的内容

dtx    删除字符直到遇见光标之后第一个x字符

ytx      复制字符直到遇见光标之后的第一个x字符

末行模式(扩展模式):

       1、范围定界

:start,end

# 具体第#行,例如2表示第二行

1,2          第1到第2行

10,19      10到19行

10,+9   从第10行向后走9行

.             表示当前行

$            最后一行

$-1         倒数第二行

/pat1/,/pat2/  第一次被pat1匹配到的行,到第一次被pat2匹配到的行

#,/pat/                  从#行开始到第一次被pat匹配到的行

% 全文

注意:如果不用地址定结符,只检查光标所在行

      

   编辑命令:

d 删除

y 复制

w /path/to/somewhere :将范围内的行另存至指定文件中

r /path/to/somefile:把somefile文件内容插入到地址定界后面

例如 10r xxx  将xxx文件插入到第十行后面

!command     执行命令

r !命令     #将命令执行结果插入,如 r !hostname 将hostname执行结果插入进入文档

       2、查找

/PATTERN:从当前光标所在处向文件尾部查找

?PATTERN:从当前光标所在处向文件尾部查找

n:与命令同方向

N:与命令反方向

       3、*查找替换:

:地址定界s/查找模式(正则)/替换为内容/gi

要查找的内容:可使用模式

      要替换的内容:不能使用模式,但是可以使用\1,\2 等后向引用副号;还可以使用&引用前面查找到的整个内容

修饰符:

g:全局替换,一行中出现多次也替换

gc:全局替换,每次替换前询问

i:不区分大小写

&:用于在替换为的内容部分中引用前面匹配到的所有内容

定制vim工作特性:

  配置文件:永久有效

    全局:/etc/vimrc

    个人:~/.vimrc

扩展模式:当前vim进程有效

    (1) 行号

显示:set number, 简写为set nu

取消显示:set nonumber, 简写为set nonu

    (2) 忽略字符的大小写

启用:set ic

不忽略:set noic

    (3) 自动缩进

启用:set ai

禁用:set noai

     (4) 智能缩进

启用:smartindent简写set si

禁用:set nosi

    (5) 高亮搜索

启用:set hlsearch

禁用:set nohlsearch

     (6) 语法高亮

启用:syntax on

禁用:syntax off

     (7) 显示Tab和换行符^I 和$显示

启用:set list

禁用:set nolist

(8) 文件格式

启用windows格式:set fileformat=dos

启用unix格式:set fileformat=unix

简写:set ff=dos|unix

(9) 设置文本宽度

set textwidth=65 (vimonly)

set wrapmargin=15

(10) 设置光标所在行的标识线

启用:set cursorline,简写cul

禁用:set no cursorline

(11) 复制保留格式

启用:set paste

禁用:set nopaste

Linux命令:vi | vim命令的更多相关文章

  1. Linux学习---vi/vim命令

    Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 所以本文直接用Vim编辑器 基本上 vi/vim 共分为三种模式,分别是命令模式( ...

  2. Linux之vi/vim命令

    vi命令是linux中必不可少的一个编辑器工具.那么vi与vim又有什么区别呢,可以简单理解为vim是vi的升级版.在编辑一个文本时,vi不会显示颜色,而vim会显示颜色.显示颜色更易于用户进行编辑, ...

  3. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  4. Linux上vi(vim)编辑器使用教程

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

  5. 【转】Linux上vi(vim)编辑器使用教程

    Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...

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

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

  7. 新手指南:Linux上vi(vim)编辑器使用教程

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

  8. Linux命令vi/vim 使用方法讲解

    vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的 ...

  9. -Git Linux vi/vim 命令 按键 MD

    目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...

  10. Linux vi/vim命令

    转自:http://www.runoob.com/linux/linux-vim.html Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一 ...

随机推荐

  1. 妙用python之编码转换

    转自i春秋 文章难易度:★★ 知识点:python.编码转换 前 言 在日常渗透,漏洞挖掘,甚至是CTF比赛中,会遇到各种编码,常常伴随着这些编码之间的各种转换.记得刚入门那个时候,自己处理编码转换问 ...

  2. 前端开发:mock.js的简单应用(生成随机数据,拦截 Ajax 请求)

    摘要 在前端开发过程中,后端接口还没有完全开发完成时,前端开发人员就需要学会自己模拟后端接口数据,更快更好的完成开发任务.模拟后端接口数据的js库有很多,今天就简单就简单的分享下mock.js在前端开 ...

  3. Springboot 中AOP的使用

    面向切面编程(Aspect Oriented Programming) 是软件编程思想发展到一定阶段的产物,是面向对象编程的有益补充.AOP一般适用于具有横切逻辑的场合,如访问控制.事务管理.性能检测 ...

  4. [Fiddler学习] - Mock的简单实现原理及方法

    最近在研究Fidder抓包并做一点测试工作,下面介绍一下Fiddler的实现原理: 简单来说从clent,server端发出来的请求,都需要通过Fiddler进行代理走一遍.如果有任何请求需要做修改, ...

  5. lintcode算法周竞赛

    ------------------------------------------------------------第七周:Follow up question 1,寻找峰值 寻找峰值 描述 笔记 ...

  6. java文件上传判断文件夹是否存在

    判断文件夹是否存在,不存在创建文件夹 File file =new File("E:/workspace/net/src/main/webapp/upload"); //如果文件夹 ...

  7. java平衡二叉树AVL数

    平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树 右旋:在插入二叉树的时候,根节点的右侧高 ...

  8. Laravel Vuejs 实战:开发知乎 (2)用户登录

    1.安装一个给用户提示的扩展包: 二选一: https://github.com/laracasts/flash [我选的这个]https://github.com/oanhnn/laravel-fl ...

  9. markdown简1

    1.使用 = 和 - 标记一级和二级标题 = 和 - 标记语法格式如下: 我展示的是一级标题 ================= 我展示的是二级标题 ----------------- 我展示的是一级 ...

  10. zookeeper 源码(一) 选举和同步数据

    前言 在开始阅读代码前我们先来了解一下zk 的大致结构,具体大概要实现的核心功能有那些,心中有个大概的框架阅读代码时再深入其中的细节,就会非常好懂,本人觉得这是一个阅读源码的好方法,可以最快地切入到源 ...