一、什么是vim

vi是一种模式编辑器。vi 是Unix世界里极为普遍的全屏幕文本编辑器,几乎可以说任何一台Unix机器都会提供这套软体,
其他的文本编辑器则不一定会存在,但是目前我们使用比较多的是 vim 编辑器。

vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具。

二、vi/vim的使用

基本上vi/vim共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

1、命令模式

用户刚刚启动vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。
比如我们此时按下a或者i或者o等等,并不会输入一个字符,而是会被当作一个命令进行处理。

1. 移动光标
w(e)    移动光标到下一个单词
b    移动到光标上一个单词

数字0  移动到本行开头
$    移动光标到本行结尾

H    移动光标到屏幕首行的行首
M    移动到光标到屏幕的中间一行的行首
L     移动光标到屏幕的尾行的行首

gg     移动光标到文档的首行
G    移动光标到文档尾行

nG 移动光标到指定行的行首(n为行数,例如 25G 移动到第25行)
:行号 快速定位到哪一行

Ctrl + f 翻到下一页 (向前翻页) front
Ctrl + b 翻到上一页(向后翻页) back

Ctrl + u 向前翻半页
Ctrl + d 向后翻半页

`.  移动光标到上一次的修改行

2. 查找
/字符串 在整篇文档中搜索 字符串,向下查找,按字母 n 跳到下一个
?字符串 在整篇文档中搜索 字符串,向上查找,按字母 n 跳到上一个

* 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
# 查找整个文档,匹配光标所在的所有单词,按下n查找上一处,N下一处

gd 找到光标所在单词匹配的单词,并停留在非注释的第一个匹配上

%     找到括号的另一半!!

:noh 取消查找的内容

3. 复制粘贴
yy 光标在哪一行,输入yy就是复制这一行
p 粘贴yy所复制的内容

7yy 就是复制光标所在行的7行
p 粘贴刚才复制的7行

4. 删除

dd 删除光标所在行
2dd 删除光标所在的2行数据

D 删除当前光标到行尾的内容
dG 删除当前行到文档尾部的内容

x   删除光标所在的字符

5.撤销

u 撤销上一步的操作
Ctrl+r 反撤销

2、输入模式

i: 插入光标前一个字符
I: 插入行首

a: 插入光标后一个字符
A: 插入行未

o: 向下新开一行,插入行首
O: 向上新开一行,插入行首

3、底线命令模式

在命令模式下输入冒号(英文的:),就进入了底线命令模式,
在底线命令模式下可以输入单个或多个字符的命令,常用命令有

:w 将文件内容写入

:q 不保存退出
:q! 不保存强制退出

:x 保存退出
:wq! 强制保存退出

:set number 显示行号
:set nu 显示行号

:set nonu  取消行号

:! command 暂时离开vim指令模式,执行command的结果
例如 :!ip 临时看一下ip信息,然后可以回到vim

4、vim工作模式

5、vim按键

移动光标的方法
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符

向下移动5行      5j
向右移动10字符    10l

n(space)    按下数字n,例如10,然后按下空格,光标会向右移动10个字符

ctrl + n 是自动补齐

vim 编辑器中TAB变4空格
vim /etc/vimrc #打开 vimrc 文件,将以下三行内容添加到文件中

set ts=4

set expandtab

set autoindent

Linux之文本编辑器Vim的更多相关文章

  1. Linux文本文件——文本编辑器Vim

    Linux文本文件——文本编辑器Vim 摘要:本文主要学习在Linux系统中使用Vim文本编辑器编辑文本. 什么是Vim Vim是一个基于文本界面的编辑工具,使用简单且功能强大.更重要的是,Vim是所 ...

  2. 【Linux】文本编辑器Vim常用操作入门

    Linux常用文本编辑器:Vi & Eamcs Vim -- Vi的升级版本 Vim 一.3种工作模式 命令行模式 (Command Mode) 插入模式 (Insert Mode) -- 键 ...

  3. Linux学习总结(19)——Linux中文本编辑器vim特殊使用方法

    1. vim比对功能 在linux的环境下 用于观察两个文件的一致性的时候我们一般用diff这个命令来比对,但是这个命令不能你特别详细的比对出 具体的位置或者行对比.这里就用到了vim的对比功能 vi ...

  4. Linux学习 - 文本编辑器Vim

    一.Vim工作模式 二.命令 插入 a 光标后插入 A 光标所在行尾插入 i 光标前插入 I 光标所在行首插入 o 光标下插入新行 O 光标上插入新行   删除 x 删除光标处字符 nx 删除光标处后 ...

  5. Linux系列教程(十)——Linux文本编辑器vim

    通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...

  6. Linux常用命令——文本编辑器Vim

    Linux常用命令--文本编辑器Vim Linux  Vim常用操作 插入命令 a 在光标所在字符后插入 A 在光标所在行尾插入 i 在光标所在字符前插入 I 在光标所在行首插入 o 在光标下插入新行 ...

  7. Linux文本编辑器vim

    目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...

  8. LINUX文件内容处理及文本编辑器vim

    Linux基本操作命令 echo命令 echo命令: 把echo后面的内容显示到屏幕. -n 显示内容的时候不显示每行结尾的回车 echo 内容 >> 文件名 表示把内容加到一个文件的末尾 ...

  9. Linux基础学习(5)--文本编辑器Vim

    第五章——文本编辑器Vim 一. Vim常用操作 1.Vim简介:              Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立.编辑. ...

随机推荐

  1. Array的 map() 和 reduce()

    map() map() 方法返回一个新数组,新数组中的元素为原始数组中的元素依次调用参数中的函数处理后的值. map() 方法不会对空数组进行检测,也不会修改原数组. 语法: array.map(fu ...

  2. HTML和CSS前端教程03-CSS选择器

    目录 1. CSS定义 2. 创建CSS的三种方法 2.1. 元素内嵌(权重最高) 2.2. 文档内嵌 2.3. 外部引用 3. CSS层叠和继承 3.1. 浏览器样式 3.2. 样式表层叠 3.3. ...

  3. 1.SDL介绍

    01.什么是SDL SDL是微软提出的一种软件开发安全生命周期管理的一种最佳安全实践,全称为Security Development Lifecycle. SDL是微软软件开发安全保障流程,结合了软件 ...

  4. Dynamics 365使用代码发送邮件给指定邮箱地址

    摘要: 微软动态CRM专家罗勇 ,回复303或者20190213可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 当然,首先要 ...

  5. Mac 终端 显示隐藏文件

    defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder //显示隐藏文件 defaults wr ...

  6. Linux Logwatch的学习总结

    Logwatch功能介绍 Logwatch是一款Perl脚本编写的.开源的日志分析工具.它能对原始的日志文件进行解析并转换成结构化格式的文档,也能根据您的使用情况和需求来定制报告.Logwatch的特 ...

  7. C#事件与委托详解【精华 多看看】

    Delegate delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类.与其它的类不同,delegate类能够拥有一个签名(signature),并且它"只能持有与 ...

  8. Jenkins系统监测(转)

    Jenkins系统监测   Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时 Jenkins 能实施监控集成中存在 ...

  9. python--继承--方法的重写---和父类的扩展

    1.方法的重写 父类的方法不能满足子类的需要,可以对方法重写 具体的实现方式,就相当于在子类中定义了一个和父类同名的方法并实现 重写之后只会对子类的方法调用,而不会调用父类封装的方法 2.对父类方法进 ...

  10. 创建你的第一个Composer/Packagist包

    今天我们要介绍一下如何通过Composer和Packagist向PHP社区贡献代码包.首先,如果你是一个PHP开发者但是还不知道什么是Composer,请先参考了一下这篇文章http://docs.p ...