linux文本编辑器-VIM基本使用方法
vim [OPTION]... FILE...
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
vim + file 直接打开file,光标在最后一行
三种主要模式:
命令模式:移动光标,剪切粘贴等
插入模式:编辑,修改文本
扩展模式:保存退出等

模式转换:
a 在光标后插入内容
A 在光标所在行末尾插入内容
i 从当前光标前插入内容
I 在光标所在行行首插入内容
o 在当前光标下插入空行
O 在当前光标上插入空行
插入模式-->命令模式 esc
命令模式-->扩展模式 :、?、/
扩展模式-->命令模式 esc
vim的打开与退出:
vim file 若file存在则打开file,若file不存在则新建file
命令模式光标跳转:
字间跳转:
h: 左 、 l: 右 、 j: 下 、 k: 上 (支持上下左右键)
单词间跳转:
w :下一个单词的词首
e :当前或下一单词的词尾
b :当前或前一个单词的词首
行内的跳转:
Home ^ 将光标跳转到本行的行首
End $ 将光标跳转到本行的行尾
0 跳转到绝对行首
行间的跳转: (#代表任意数字)
1G=gg 跳转到文件的首行
G 跳转到文件的尾行
#G 跳转到文件的#行(命令模式)
:# 跳转到文件的#行(末行模式)
句间移动:
) :下一句 ( :上一句
段落间移动:
}: 下一段 {:上一段
当前页跳转:
H:页首、 M:页中、 L:页低
翻页移动:
PgDn Ctrl+f 向下翻一页
PgUp Ctrl+b 向上翻一页
扩展模式基本操作:
:q 退出
:q! 强制退出
:w 保存
:wq 保存退出 = ZZ = :x
:X 加密
:wq! 强制保存退出
:! 命令 在vim中执行外面命令
:e file 编辑file
:w file 将当前文件另存为file
:r file 读入file文件的内容
$$yyzOv8eO$a0q8BUF80SGcJTy8hx0hy/ :r!openssl passwd - ##扩展模式使用外面命令生成加密字符串读入到文件中
命令模式字符编辑:
x 删除光标处的字符;
#x 删除光标处起始的# 个字符
xp 交换光标所在处的字符及其后面字符的位置
~ 转换大小写
r 替换光标所在处的字符
R 进入替换模式
d 删除命令,可结合光标跳转字符,实现范围删除;
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dd 删除光标所在行
#dd 删除#行
dG 删到尾行
dgg 删到首行
yy 复制当前光标所在行,(支持y$、y0、y^等)
#yy 复制当前光标向下#行
p 粘贴
c 修改,(支持y$、y0、y^等)
J 合并当前行和下一行
u 取消最近一次的操作,能多次使用
U 取消当前行所有的操作
ctrl+r 对使用u命令撤销操作进行恢复
. 重复前一个操作
n. 重复前一个操作n次
扩展模式地址定界:
:2,+3 表示2到5行
:. 点表示当前行
:$ 表示最后一行
:% 表示全文,相当于1,$
/p1,/p2 第一次被p1匹配到的行到第一次被p2匹配到的行
扩展模式字符串查找:
/world 从上向下查找world
?world 从下向上查找world
n 定位下一个匹配的字串
N 定位上一个匹配的字串
扩展模式字符串替换:
:s/old/new 将当前行中查找到的第一个字符“old” 串替换为“new”
:s/old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”
:#,#s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
:%s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”
:s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认
:%s/^\s*//g 删除行首空格
:g/^$/d 删除空行
:5,10s/^/#/g 在5到10行行首插入#号注释
可视话模式:
允许选择的文本块,可代替鼠标。突出显示的文字可以被删除,复制,变更,过滤,搜索/替换等
v面向字符
V面向行
ctrl-v 面向块
多文件模式:
vim file1 file2 file3 ...
:next 下一个
:prev 前一个
:first 第一个
:last 最后一个
:wall 保存所有
:qall 退出所有
:wqall
多文件窗口:
vim -o file1 file2 ...
-o 水平分割
-O 垂直分割
窗口间切换:ctrl+w
单文件窗口:
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q :取消相邻窗口
ctrl+w,o: 取消全部窗口
: wqall 退出
定制vim工作特性:
配置文件:
全局:/etc/vimrc
个人:~/.vimrc
1、行号:
永久修改:
在/root/.vimrc文件中添加
set nu
:set nonu 去掉行号
临时显示行号:(扩展模式)
:set nu 显示行号
:set nonu 不显示行号
2、括号成对匹配:
匹配:set sm
取消:set nosm
3、自动缩进:
启用:set ai
禁用:set noai
4、高亮搜索:
启用:set hlsearch
禁用:set nohlsearch
5、语法高亮:
启用:syntax on
禁用:syntax off
6、忽略字符的大小写
启用:set ic
不忽略:set noic
7、文件格式:
启用: fileformat=unix
不忽略: fileformat=dos
8、设置文本宽度
:set textwidth=65 (vim only)
:set wrapmargin=15
vim的寄存器:
有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享。
有10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享。

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
- linux文本编辑器vim大全
linux基础之vim编辑器 1.vim编辑器 基本介绍 vim编辑器的前身叫做vi.vi的英文名:Visual Interface.中文解释文本编辑器,你不应该用他去打开二进制可执行文件 文本编辑 ...
- 10.18.1 linux文本编辑器vim
vi和vim的区别 编辑一个文本时,vi不会显示颜色,而vim会显示颜色,vi 有点类似windows记事本,简单,那么就是vim复杂编辑器,功能复杂,高亮,自动缩进(写shell/python脚本用 ...
- Linux学习总结(19)——Linux中文本编辑器vim特殊使用方法
1. vim比对功能 在linux的环境下 用于观察两个文件的一致性的时候我们一般用diff这个命令来比对,但是这个命令不能你特别详细的比对出 具体的位置或者行对比.这里就用到了vim的对比功能 vi ...
- Linux | 文本编辑器vim
vim 编辑器介绍 vim 编辑器是一款非常棒的文本处理工具,它会默认安装在当前所有的 Linux 操作系统上面. vim 编辑器中设置了三种模式,可以极大的提高我们的工作效率: 命令模式:控制光标移 ...
- linux 文本编辑器 vim 基本操作
三种模式之间转换: 一般模式 可用于光标移动.复制粘贴.查找替换 "vim.txt"表示文件名 8L 表示8行 , 80C 表示80个字符 移动光标常用操作: h .j. k. l ...
- linux文本编辑器vim详解
vim 1.打开文件 vim [option] - file... 打开文件 +# 打开文件后,让光标处于第#行的行首 +/字符串 打开文件后,光标处于第一个被匹配到字符串的行首 -b file 二进 ...
随机推荐
- unity3d各种OpenFileDialog操作
http://www.cnblogs.com/U-tansuo/archive/2012/07/10/GetOpenFileName.html 1 编辑模式(Editor)下: string path ...
- codevs 3162 抄书问题
3162 抄书问题 题目描述 Description 现在要把M本有顺序的书分给K个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如 ...
- pytest框架(五)
代码示例一 # coding=utf-8 import pytest @pytest.fixture() def login(): print("输入账号,密码先登录") def ...
- python 扩展注册功能装饰器举例
db_path='db.txt'def get_uname(): while True: uname=input('请输入用户名:').strip() if uname.isalpha(): with ...
- 爬虫基础(1):urllib库
urllib库 urllib库是python中的一个基本网络请求库.用于模拟浏览器的行为,向指定服务器发送请求,并接收返回的数据. 在python3中所有的网络请求相关函数都集中在urllib.req ...
- STP-7-RSTP的BPDU格式和处理方式的改变
RSTP只使用一种BPDU,协议版本字段为2(STP为0). STP标志字段8位只使用了两位:TC(拓扑变化)和TCA(拓扑变化确认). RSTP也使用了其余6位:提议位,端口角色位,学习位,转发位, ...
- mybatis pageHelper 分页插件使用
转载大神 https://blog.csdn.net/qq_33624284/article/details/72828977 把插件jar包导入项目(具体上篇有介绍http://blog.csdn. ...
- SpringCloud 分布式配置中心
SpringCloud 分布式配置中心 服务端 创建工程并完善结构 国际惯例,把maven工程创建完善 pom.xml <?xml version="1.0" encodin ...
- 浅析libuv源码-node事件轮询解析(3)
好像博客有观众,那每一篇都画个图吧! 本节简图如下. 上一篇其实啥也没讲,不过node本身就是这么复杂,走流程就要走全套.就像曾经看webpack源码,读了300行代码最后就为了取package.js ...
- 走进docker的世界之入门篇
by zhouzhipeng from https://blog.zhouzhipeng.com/walk-in-docker-beginning.html本文可全文转载,但需要保留原作者和出处. 什 ...