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 二进 ...
随机推荐
- ABP 软删除ISoftDelete
一.简介 ABP 的软删除是为了,在删除的时候,不是真正的删除数据,是为了保护数据. 二.具体实现 在 Core 层,我们需要这个实体去实现这个 ISoftDelete 接口.实现它的 public ...
- Candies
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 30247 Accepted: 8409 Descrip ...
- 深入Java集合学习系列:HashSet的实现原理
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素. 2. H ...
- 转 BeanShell 简介与学习(一篇就够)
2017年05月17日 21:24:10 金刚龙123 阅读数:5131 标签: BeanShell 更多 个人分类: 开发语言及脚本语言 简介: BeanShell是一种脚本语言,一种完全符 ...
- 为HTML5添加新样式标签
为 HTML 添加新元素 该实例向 HTML 添加的新的元素,并为该元素定义样式,元素名为 <myHero> : 实例 <!DOCTYPE html> <html> ...
- java 同时安装多版本问题(转)
描述:刚到新公司,自己安装了jdk1.7和开发工具myeclipse10,但是由于公司项目的需要(具体原因不详细描述了),需要使用myeclipse6.5和jdk1.6.于是在切换jdk1.7和jdk ...
- Go 基础(非常基础)
// package main 和 main 函数 package main func main() {} //每一个.go文件都需要有 package 关键词,并且声明在文件顶部 package p ...
- POJ-2186-Popular Cows(强连通分量,缩点)
链接:https://vjudge.net/problem/POJ-2186 题意: 有N(N<=10000)头牛,每头牛都想成为most poluler的牛,给出M(M<=50000)个 ...
- Exploring refit, an automatic type-safe REST library for .NET Standard
自动类型安全的.NET标准REST库refit 在SCOTT HANSELMAN 博客上看到一个好东西<Exploring refit, an automatic type-safe RES ...
- Linux关闭/开启防火墙命令
Linux还是比较常用的,于是我研究了一下Linux关闭防火墙命令,在这里拿出来和大家分享一下,希望你能学会Linux关闭防火墙命令 . 1) 永久性生效,重启后不会复原 开启: chkconfig ...