linux文本编辑器vim大全
linux基础之vim编辑器
1、vim编辑器
基本介绍
vim编辑器的前身叫做vi。vi的英文名:Visual Interface。中文解释文本编辑器,你不应该用他去打开二进制可执行文件
文本编辑器种类
行编辑器
sed
全屏编辑器
nano
vi
vim:Vi IMproved
基本使用
vim是一个模式化编辑器
vim编辑器默认打开文件后是编辑模式或者命令模式
vim的基本模式
编辑模式、命令模式
输入模式
末行模式
可视化模式
基本介绍
vim内建了很多子命令,即内置了命令行接口,可以通过打开末行模式来执行vim内置的命令
vim打开文件的语法
vim [options] [file ..]
vim [options] -
vim [options] -t tag
vim [options] -q [errorfile]
常用选项
+num:打开文件后,直接让光标处于第num行。如果只有加号,没有num表示打开文件处于文件的最后一行
使用案例
vim + /tmp/fstab
vim +10 /tmp/fstab
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
vim模式转换
编辑模式转换到输入模式,需要键入的符号
i:英文名insert,在光标所在处前面输入
a:英文名,append,在光标所在处后面输入
o:在当前光标所在行的下面打开一个新行,并转换为输入模式
I:在光标所在行的行首输入.如果光标处于不在行首,那么他会移动到行首并转换为输入模式
A:在光标所在行的行尾输入.如果光标处于不在尾首,那么他会移动到行尾并转换为输入模式
O:在当前光标所在行的上面打开一个新行,并转换为输入模式
c:
C:
输入模式转换到编辑模式,需要键入的符号
ESC
编辑模式转换到末行模式
:
末行模式转换到编辑模式
一次ESC,这个如果在末行模式输入有命令,那么键入一次ESC不能快速回到编辑模式
两次ESC可以快速回到编辑模式
关闭文件方式
在末行模式下,键入命令
不保存退出
q:直接退出,不保存
q!:强行退出
保存退出
wq:保存退出
x:保存退出
w PATH:将当前文本内容另存到PATh这个路径下
在编辑模式下,键入命令
保存退出
ZZ:保存退出
vim中快速实现光标跳转
字符间跳转
h:向左跳一个字符
j:向下跳一个字符
k:向上跳一个字符
l:向右跳一个字符
一次跳过指定的字符
num h:向左跳num个字符
num k:向上跳num个字符
num j:向下跳num个字符
num l:向右跳num个字符
单词间跳转
w:跳转到后一个单词的词首
e:跳转到当前或者后一个单词的词尾。如果当前光标不在当前光标所在单词的词尾时,跳转到当前光标所在单词的词尾;如果当前光标在当前光标所在单词的词尾,那么跳转到后一个单词的词尾
b:跳转到前一个单词的词首,如果光标不在一个单词的词首时,跳转到当前光标所在单词的词首
行首行尾跳转(编辑模式下)
^:跳转至行首的第一个非空白字符
0:跳转到行首
$:跳转至行尾
行间移动(编辑模式下)
num G:跳转到第num行
G:跳转最后一行
1G或者gg:跳转到第一行
句间移动
):跳转到下一个句子
(:跳转到前一个句子
段落间移动
}:跳转到后一个段落
{:跳转到前一个段落
vim编辑命令
字符编辑(末行模式下)
字符的删除
x:删除光标所在处的字符
num x:删除光标所在处向后num个字符
d + 行间移动|句间移动|段落间移动|行首行尾移动|单词间移动:d键加上行间移动|句间移动|段落间移动|行首行尾移动|单词间移动的字符可以实现范围删除
案例演示
删除光标所在位置到下一个单词之间的字符
键入d+w
删除光标所在位置到行尾之间的字符
键入d+$
删除光标所在位置到行首之间的字符
键入d+0
删除光标所在位置到下一段之间的字符
键入d+}
交换字符位置
x + p:交换光标所在的字符和后边字符的位置
行的删除(编辑模式下)
dd:删除光标所在行
num + dd:删除num行
DD:删除光标所在行,并且新建空白行到光标所在位置
注意:删除的内容都保留到了一个缓冲区,如果要撤回,键入u
粘贴命令(编辑模式下)
p:(小写)英文名paste,缓存区如果为整行内容,则如果粘贴,那么粘贴到当前光标所在行的下面。如果不是整行,则粘贴到当前光标所在处的后边
P:(大写P)。如果缓存区为整行,那么粘贴时粘贴到当前光标所在行的上面行。如果不为整行,那么粘贴到光标所在处的前面
num + p 或者num + P:一次性粘贴多次
复制命令(编辑模式下)
y + 行间移动|句间移动|段落间移动|行首行尾移动|单词间移动:y键加上行间移动|句间移动|段落间移动|行首行尾移动|单词间移动的字符可以实现范围复制
使用案例
复制光标所在处到光标所在行的行尾之间的字符
y+$
复制光标所在处到光标所在行的行首之间的字符
y+0
复制光标所在处到光标所在单词的后一个单词之间的字符
y+e
yy:复制整行(复制的是单行)
num + yy:复制num行
改变命令(编辑模式)
c + 行间移动|句间移动|段落间移动|行首行尾移动|单词间移动:c键加上行间移动|句间移动|段落间移动|行首行尾移动|单词间移动的字符可以实现范围删除,并且从编辑模式进入输入模式
使用案例
删除光标所在处到光标所在行的行尾之间的字符
c+$
删除光标所在处到光标所在行的行首之间的字符
c+0
删除光标所在处到光标所在单词的后一个单词之间的字符
c+e
cc:删除整行(复制的是单行)并且从编辑模式进入输入模式
num + cc:删除num行,并且从编辑模式进入输入模式
替换命令(编辑模式下)
r char:替换光标所在处的字符
num + r键 + char:将光标所在位置向后指定num个字符全部替换成char字符
使用案例
将光标所在位置向后10个字符全部替换成a字符
10 + r + a
撤销命令
u:英文名Undo,撤销此前的操作
num + u:撤销num次操作
ctrl+r:撤销以后后悔了,这个命令是为了执行撤销的撤销操作
重复前一个编辑操作
.(点号)
可视化模式
在编辑模式下按小写或者大写v键可以进入可视化模式
v:(小写),可以使用方向键选中我们要的内容
V:(大写)。可以使用方向键选中我们要的内容
小写和大写v的区别
小写v当我们使用方位键时不会整行整行的选中,而大写v则会整行整行的选中
通过可视化模式选中的内容可以结合编辑模式下的任何命令,比如:替换命令、复制命令、删除命令等进行一些操作
使用案例
进入可视化模式,选中一部分内容进行复制
v+方位键+y
vim实现翻屏操作
ctrl+f:项文件的尾部翻一屏
ctrl+b:项文件的首部翻一屏
ctrl+d:向文件的尾部翻半屏
ctrl+u:项文件的首部翻半屏
vim自带的练习教程
vimtutor命令
vim末行模式
vim内建了命令行模式,它具有的功能如下
地址定界
start_pos,end_pos:表示第start_pos行到end_pos行的内容
start_pos:表示第start_pos行
start_pos,+num:表示从第start_pos行开始向后多加num行之间内容
使用案例
表示是删除第一行向后再输20行的内容
:1,+20d
.(点号):表示当前行
$:表示最后一行
%:表示全文,相当于1,$
start_pos,end_pos - num:表示从第start_pos行开始到end_pos行的前num行,也就是到了end_pos行后向前走num行,即end_pos行减num行
/PATTERN1/,/PATTERN2/:从第一次被PATTERN1模式匹配到的行开始,一直到第一次被PATTERN2匹配到的行结束之间的行
使用案例
第一次匹配name所在的行开始,到最后一行结束,之间的行的内容
/name/,$
第一匹配Go.*g$所在行开始,到第一次匹配na.*一行作为结束。之间的行的内容
/Go.*g$/,/na.*/
vim的地址定界后边可以接任何编辑模式下的命令。
使用案例
第一匹配Go.*g$所在行开始,到第一次匹配na.*一行作为结束。删除之间的行的内容
/Go.*g$/,/na.*/d
第一次匹配name所在的行开始,到最后一行结束,拷贝之间的行的内容
/name/,$y
第一次匹配name所在的行开始,到最后一行结束,另存之间的行的内容到/tmp/name.txt这个文件中
使用案例
/name/,$w /tmp/name.txt
将鼠标放入一个位置,然后在末行模式下输入:
r path:表示在光标所在位置插入指定路径下的文件内容
num +r path:表示在100行插入指定路径下的文件内容
使用案例
:100r /etc/fstab
:r /etc/issue
vim的查找命令(末行模式下)
/PATTERN:从当前光标所在处向文件尾部进行查找
?PATTERN:从当前光标所在处向文件首部查找
使用注意
当匹配到多个时,要想后跳一个匹配的使用下面的按键
n:小写,同方向跳
N:大写,反方向跳
vim的替换操作(末行模式下)
s:在末行模式先完成的替换操作
替换操作的语法
s/要查找内容/替换为的内容/修饰符
要查找的内容
可以使用模式匹配(默认使用的是基本模式)
要替换的内容
不可以使用模式,但是可以使用\1、\2、\3..等返向引用符号。还可以使用&符号引用前面查找时查找到的整个内容
修饰符
i:表示忽略大小写
g:表示全局替换。默认情况下,每行只替换第一次出现被匹配到的内容
使用注意:
替换操作需要结合vim的地址定界符使用,表示在那个范围内容完成搜索替换操作。替换时,如果有些具有特定意义的字符需要转义
查找替换的分割符可以使用其他字符,比如@、#等
使用案例
将光标所在位置开始到最后一行之间的内容,把匹配模式为r..t的单词替换成ROOT,并且是全局匹配
.,$s/\<r..t\>/ROOT/g
全文匹配,把匹配模式为r..t的单词替换成ROOT,并且是全局匹配
%s/\<r..t\>/ROOT/g
vim的末行模式也有命令历史的功能
问题
1、复制/etc/grub2.cfg至/tmp下,用查询替换操作删除/tmp/grub.cfg文件中的行首为空白的字符
:.,$s/^[[:space:]]\+//
2、复制/etc/rc.d/init.d/functions文件至/tmp下。用查询替换操作为/tmp/functions文件的每行开头为空白字符的行的行首添加一个#号
:%s/^[[:space:]]\+/#&/
vim的多文件模式
基本介绍
vim可以同时打开多个文件
基本语法
vim [file1[file2[file3.......]]
使用注意
vim可以同时打开多个文件,但是默认显示的是第一个文件,如果想切换到另一个文件显示的换,可以进入末行模式,输入next命令。如果到了最后一个文件,可以使用first命令,回到第一个文件显示。同时也可以使用prev命令看前一个文件;last命令看最后一个文件
当我们同时修改了两个文件时,需要一起保存,那么可以在末行模式下输入wall命令,退出所有文件使用qall命令。当然你也可以在末行模式下一个一个的保存然后在退出
vim中的窗口分割模式
基本介绍
我们可以将多个文件在同一个屏幕显示,那么需要使用到vim提供的窗口分割模式的功能
基本语法
vim [options...] file1[ file2[ .....]]
常用选项
-o:将多个文件水平分割显示在屏幕上
-O:将多个文件垂直分割显示在屏幕上
使用注意
虽然我们窗口被分割成多个,但是鼠标只有一个,那么就需要在多个分割窗口进行切换
在窗口间进行切换的命令
ctrl + w + 上下左右箭头
如果是水平分割,那么就可以使用 ctrl+w+左右箭头
如果是垂直分割,那么就可以使用 ctrl+w+上下箭头
vim单文件窗口分割
基本介绍
我们可以将一个大文件分割成多个窗口显示,这时候就会利用到vim提供的vim单文件窗口分割
基本使用
打开文件后使用命令将文件分隔成多个窗口显示,多个窗口间可以相互做一些编辑操作(拷贝、删除、替换、修改等操作)
ctrl+w+s:将单个文件水平分割
ctrl+w+v:将单个文件垂直分割
使用注意
ctrl+w一起按,然后松开按s或者v键,否则屏幕会被锁住,如果被锁住,使用ctrl+q命令解锁。因为ctrl+s是锁住终端命令
2、定制vim的工作特性
基本介绍
vim也有自己的配置文件。配置文件定义的vim特性是永久有效,但是如果在末行模式下定制的vim特性,只有在当前vim进程有效,vim进程关闭就无效了,还原为原来的状态
全局配置文件
/etc/vimrc
个人配置文件
~/.vimrc
vim常定制特性(在末行模式下)
set number 简写set nu 显示行号
set nonumber 简写 set nonu 关闭行号显示
set showmatch 简写set sm 开启括号匹配高亮,当鼠标在左括号,那么右括号被高亮
set autoindent 简写 set ai 开启自动缩进
set noai 关闭自动缩进
set hlsearch 开启搜索高亮显示
set nohlsearch 关闭搜索高亮显示
syntax on 开启语法高亮
syntax off 关闭语法高亮
set ic 忽略字符大小写
set noic 不忽略字符大小写
使用注意
如果你想在个人下配置vim特性,并且是让他永久有效,那么实在家目录向创建一个~/.vimrc配置文件。这个文件默认是不存在的,需要用户自己创建。然后把vim的特性写入这个文件中
linux文本编辑器vim大全的更多相关文章
- Linux系列教程(十)——Linux文本编辑器vim
		
通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...
 - Linux文本编辑器vim
		
目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...
 - Linux 文本编辑器 vim
		
第五讲 文本编辑器 vim
 - 10.18.1 linux文本编辑器vim
		
vi和vim的区别 编辑一个文本时,vi不会显示颜色,而vim会显示颜色,vi 有点类似windows记事本,简单,那么就是vim复杂编辑器,功能复杂,高亮,自动缩进(写shell/python脚本用 ...
 - Linux | 文本编辑器vim
		
vim 编辑器介绍 vim 编辑器是一款非常棒的文本处理工具,它会默认安装在当前所有的 Linux 操作系统上面. vim 编辑器中设置了三种模式,可以极大的提高我们的工作效率: 命令模式:控制光标移 ...
 - linux 文本编辑器 vim 基本操作
		
三种模式之间转换: 一般模式 可用于光标移动.复制粘贴.查找替换 "vim.txt"表示文件名 8L 表示8行 , 80C 表示80个字符 移动光标常用操作: h .j. k. l ...
 - linux文本编辑器-VIM基本使用方法
		
vim [OPTION]... FILE... +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首vim + file 直接打开file,光标在最后一行 三种主要模式 ...
 - linux文本编辑器vim详解
		
vim 1.打开文件 vim [option] - file... 打开文件 +# 打开文件后,让光标处于第#行的行首 +/字符串 打开文件后,光标处于第一个被匹配到字符串的行首 -b file 二进 ...
 - Linux文本编辑器Vim使用
		
1. 插入 o 在光标下插入新行 a 在光标后插入 i 在光标前插入 O 在光标上一行插入新行 A 在光标行尾插入 I 在光标行首插入 2.光标定位 gg 到第一行行首 G 到最后一行 ...
 
随机推荐
- linux下用户操作
			
在linux中添加ftp用,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test. 2.建用户:在root用户下: useradd ...
 - __name__ __doc__  __package__
			
__name__只有主程序调用才可以 如果自己的唯一入口被调用 if __name__ == '__main__' : 才执行下面的代码 """ 这个是format的注释 ...
 - 《程序设计入门——C语言》翁恺老师   第三周编程练习记录
			
1 时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果 ...
 - java第五次笔记
 - 洛谷P1073 最优贸易
			
题面要求的是一个差值,即走过一条路径能找到的路径上最大值-最小值. 那么相当于跑一遍最长路和一遍最短路,当然不是概念上的最长路最短路,这里把dis[v]的松弛改成用路径上传递来的最大/最小值维护,而不 ...
 - [SCOI2003]字符串折叠
			
一道蛮好玩的区间DP...其实只要做好check...然后统计答案就好了...QAQ... 呆码: #include<iostream> #include<cstdio> #i ...
 - Java中常见的分页算法
			
在查询数据的时候或者展示数据的时候经常会使用分页,介绍几种简单的分页算法: //总的页数 int total = 30: //每页个数 int pageSize = 6; 1.one int ...
 - HTML网页音频控制
			
// 音频播放function playSound(url) { var borswer = window.navigator.userAgent.toLowerCase(); var audio; ...
 - Python数据库连接池---DBUtils
			
Python数据库连接池DBUtils DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不 ...
 - HTML 基于 Python 实现分页功能
			
前面的话: 1. 网页引用的bootstrap 中的表格,所以需要引入样式类 2. 第一次写文章,不喜勿喷.有不足的地方,可留言我改正,在此先谢过. HTML代码: <!DOCTYPE html ...