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 二进 ...
随机推荐
- 特性attribute,声明和使用attribute,应用attribute,AOP面向切面,多种方式实现AOP
1 特性attribute,和注释有什么区别2 声明和使用attribute3 应用attribute4 AOP面向切面5 多种方式实现AOP ---------------------------- ...
- Golang : cobra 包简介
Cobra 是一个 Golang 包,它提供了简单的接口来创建命令行程序.同时,Cobra 也是一个应用程序,用来生成应用框架,从而开发以 Cobra 为基础的应用.本文的演示环境为 ubuntu 1 ...
- int **指针问题
转自:http://blog.csdn.net/u012501459/article/details/45395571 在打印二维数组时遇到了问题,二维数组可以这样定义int matrix[ROWS] ...
- 安装wepack
安装webpack之前要安装node.js 1.安装webpack运行 npm install webpack -g 和npm install webpack-cli -g npm install w ...
- IT兄弟连 JavaWeb教程 AJAX中参数传递问题
使用Ajax发送GET请求并需要传递参数时,直接在URL地址后拼接参数,格式如下: xhr.open('get','请求路径?参数名1=参数值1&参数名2=参数值2...',true); 使用 ...
- 洛谷P4822 冻结
题目描述 "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" "我要将有关魔法和奇迹的一切,封印于卡片之中„„" 在这个愿望被 ...
- python进程之理论
********进程理论知识******** ****操作系统背景知识**** 顾名思义,进程及正在执行的一个过程,进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念, ...
- python进阶01 面向对象、类、实例、属性封装、实例方法
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...
- Batch梯度下降
1.之前讲到随机梯度下降法(SGD),如果每次将batch个样本输入给模型,并更新一次,那么就成了batch梯度下降了. 2.batch梯度下降显然能够提高算法效率,同时相对于一个样本,batch个样 ...
- sql 模版
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- ...