Vim编辑器基础

vi:Visual Interface
vim:VI iMproved

Vim模式

1、编辑模式(命令模式)
只能下达命令,不能键入字符
2、输入模式
键入字符
3、末行模式
左下角有冒号,可以键入命令执行

Vim模式转换

vim 文件名

编辑-->输入:
i:在当前光标所在字符的前面,转为输入模式;
a:在当前光标所在字符的后面,转为输入模式;
o:在当前光标所在行的下方,新建一行,并转为输入模式; I:在当前光标所在行的行首,转换为输入模式;
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式; 输入-->编辑:
ESC 编辑-->末行:
: 末行-->编辑:
ESC,ESC

打开文件

# vim /path/to/somefile  

    vim +# :打开文件,并定位于第#行
vim + :打开文件,定位至最后一行
vim +/PATTREN :打开文件,定位至第一次被PATTREN匹配到的行的行首 默认处于编辑模式

关闭文件

1、末行模式关闭文件
:q 退出
:wq 保存并退出
:q! 不保存并退出
:w 保存
:w! 强行保存
:wq --> :s
2、编辑模式下退出
ZZ: 保存并退出

移动光标(编辑模式)

1、逐字符移动:
h:左
l:右
j:下
k:上
#h:移动#个字符; 2、以单词为单位移动
w:移至下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或前一个单词的词首 #w: 3、行内跳转:
0:绝对行首
^: 行首的第一个非空白字符
$:绝对行尾 4、行间跳转
#G:跳转至第#行:
G:最后一行 末行模式下,直接给出行号即可

翻屏

Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏 Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏

删除单个字符

x:删除光标所在处的单个字符
#x:删除光标所在处及向后的共#个字符

删除命令:d

d命令跟跳转命令组合使用:
#dw,#de,#db dd;删除当前光标所在行
#dd:删除包括当前光标所在行在内的#行; 末行模式下:
StartADD,EndADDd
.: 表示当前行
$:最后一行
+#:向下的#行

粘贴命令 p

p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;

复制命令 y

用法同d命令

修改:先删除内容,在转换为输入模式

c:用法同d命令

替换:r

R:替换模式

撤销编辑操作 u

u:撤销前一次的编辑操作
连续u命令可撤销此前的n此操作
#u:直接撤销最近#次编辑操作 撤销最近一次撤销操作:Ctrl+r

重复前一次编辑操作

.

可视化操作

v:按字符选取
V:按行选取
Ctrl+v:按矩形选取

查找

/PATTERN
?PATTERN
n
N

查找并替换

在末行模式下使用s命令
ADDR1,ADDR2s@PATTREN@string@gi
1、$
%: 表示全文

使用vim编辑多个文件

vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件 退出
:qa 全部退出

分屏显示一个文件

Ctrl+w,s:水平拆分窗口
Ctrl+w,v:垂直拆分窗口 在窗口间切换光标:
Ctrl+w,ARROW :qa

分窗口多个文件

vim -o:水平分割显示
vim -O:垂直分割显示

将当前文件中部分内容另存为另外一个文件

末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somewhere

将另外一个文件的内容填充在当前文件中

:r /path/to/somefile

跟shell交互

:! COMMAND

高级话题

1、显示或取消显示行号
:set number
:set nu :set nonu 2、显示忽略或区分字符大小写
:set ignorecase
:set ic :set noignorecase
:set noic 3、设定自动缩进
:set autoindent
:set ai
:set noai 4、查找到的文本高亮显示或取消
:set hlsearch
:set nohlsearch 5、语法高亮
:syntax on
:syntax off

配置文件

/etc/vimrc
~/.vimrc

Vim编辑器基础的更多相关文章

  1. Vim编辑器基础命令

    Linux系统中都默认安装了vi或vim编辑器,两种命令基本一致.vim为Vi IMproved,功能更强大. vim有命令模式,输入模式,和末行模式三种. ➢ 命令模式:控制光标移动,可对文本进行复 ...

  2. 『学了就忘』vim编辑器基础 — 94、vim编辑器介绍

    目录 1.vim编辑器简介 2.vim的工作模式 (1)命令模式 (2)输入模式 (3)最后行模式(末行模式) 1.vim编辑器简介 vim是一个全屏幕纯文本(绘个表格或者插个图片就不要想了)编辑器, ...

  3. 『学了就忘』vim编辑器基础 — 95、命令模式中的相关命令

    目录 1.移动光标操作 2.删除或剪切操作 3.复制操作 4.撤销操作 5.替换操作 6.补充一个知识点 命令模式中的命令主要取代的是Linux系统中鼠标的操作. vim编辑器的快捷键一般都集中在命令 ...

  4. 『学了就忘』vim编辑器基础 — 96、末行模式中的相关命令

    目录 1.在文档中显示行号 2.是否显示文档内容相关颜色 3.是否将查找的字符串高亮显示 4.是否显示右下角的状态栏 5.是否在左下角显示如"--INSERT--"之类的状态栏 6 ...

  5. 『学了就忘』vim编辑器基础 — 97、vim使用技巧

    目录 1.在vim中导入其他文件内容或命令结果 (1)导入其他文件内容 (2)在vim中执行系统命令 (3)导入命令结果 2.设定快捷键 3.字符替换 4.多文件打开 vim使用技巧,就是vim编辑器 ...

  6. linux基础之vim编辑器

    vi : Visual Interface vim : VI Improved : VI的基础加上一些有用的插件 vim编辑器: 文本编辑器, 字处理器, 全屏编辑器, 模式化编辑器 vim的模式有三 ...

  7. 零基础学习Vim编辑器

    **********************************************************************0.这篇教程的简介:Vim是Linux/Unix下的经典编辑 ...

  8. 2019-9-11:渗透测试,基础学习,vim编辑器,笔记

    Linux快捷路径符号说明. 代表当前目录.. 上级目录- 代表前一个工作目录~ 表示当前用户的家目录 vmware tools 用来虚拟机和宿主机之间移动数据 vim/vi编辑器vim编辑器三种模式 ...

  9. Linux笔记:使用Vim编辑器

    Vi编辑器是Unix系统上早先的编辑器,在GNU项目将Vi编辑器移植到开源世界时,他们决定对其作一些改进. 于它不再是以前Unix中的那个原始的Vi编辑器了,开发人员也就将它重命名为Vi improv ...

随机推荐

  1. Linux —— gcc编译文件

    编译过程 预处理: 作用: 负责展开在源文件重定义的宏 操作: g++ -E 源文件.c -o 目标文件.i 汇编: 作用: 将目标文件生成汇编代码文件 操作: g++ -S 目标文件.i -o 汇编 ...

  2. UVaLive6435(dp)

    要点 题意:两个数据传输数列,每个数列里有若干个数据包并给出发出时间\(t\),每个数据包到达的时间\(T\)是\(t <= T < t + D\),问有多少种到达序列. 将题目转化为第二 ...

  3. proxy_pass http://127.0.0.1:5000; 502 bad getway

    (13: Permission denied) while connecting to upstream:[nginx] I am working with configuring django pr ...

  4. 程序运行过程中遇到“ORA-03114: not connected to ORACLE”的问题解决

    c#,winform程序,数据批量入oracle库时用到DataAdaper的.FillSchema函数,如:da.FillSchema(dt2, SchemaType.Mapped); 程序运行一段 ...

  5. (转)通过MySQL复制线程SQL_Thread加快增量恢复binlog

    数据回档常常是使用全量备份+binlog增量实现的.而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题,因为恢复binlog速度十分慢,并且容易出错. 恢复binlog文件一般有两种方法: ...

  6. [转]Todd.log - a place to keep my thoughts on programming 分布式架构中的幂等性

    Todd.log - a place to keep my thoughts on programming 理解HTTP幂等性 基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式. ...

  7. log4j.properties配置详情

    log4j: log for java 是Apache的一个开源项目! 00.将我们的日志信息,输出到指定的位置(控制台   文件中) 01.我们可以控制每一条日志的输出格式 02.我们设置日志信息的 ...

  8. 使用git和github管理项目代码

    以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下 ...

  9. js黑科技,使用offsetParent检测元素是否隐藏

    var isHidden = function (element) { return (element.offsetParent === null);}; eg:

  10. swift基础-3

    fallthrough 贯穿 case  可以不必写break 如果不需要知道区间内 每一项的值  可以使用 下划线 —— 来代替变量名 忽略 对该值的访问 for index in 1...5{ p ...