【linux笔记】vim

【linux笔记】vim

启动和退出

启动

bash 复制代码
vi

退出

bash 复制代码
q

强制退出

bash 复制代码
q!

编辑模式

bash 复制代码
vi foo.txt

创建一个文件,启动后,是命令模式,是不能编辑的,键盘上的按键对应不同的命令。

插入模式

按键盘上的i,进入插入模式

保存内容

bash 复制代码
:w

移动光标

按键 光标动作
L 右移一位
H 左移一位
J 下移一行
K 上移一行
数字 0 至本行开头
^ 至本行第一个非空字符
$ 至本行的末尾
w 至下一个单词或标点的开头
W 至下一个单词的开头,越过标点
b 至上一个单词或标点的开头
B 至上一个单词的开头,越过标点
Ctrl-F或Page Down 下一页
Ctrl-B或Page UP 上翻一页
number-shift-g 将光标移动到第n行
G 移动到文件最后一行

添加文本

A 在文件末尾添加
o 在当前行的上方加入一行
O 在当前行的下方加入行

删除文本

u 撤销操作(vi只可以撤销一步)
x 删除当前字符
3x 删除3个字符
dd 删除当前行
5dd 删除5行
dW 当前字符到下一个字符的起始
d$ 当前字符到行的末尾
d0 当前字符到行的起始
d^ 当前字符到第一个非空字符
dG 当前行到末尾
d20G 当前行到文件第20行

剪切、复制和粘贴文件

dd就是剪切操作

复制命令
yy 当前行
5yy 5行
yW 当前字符到下一个单词开始
y$ 当前字符到行尾
y0 当前字符到行首
y^ 当前字符到当前行的第一个非空字符
yG 当前行到文件结尾
y20G 当前行到第20行

p命令将复制的内容粘贴到当前行的下方,P命令将复制的内容粘贴到当前行的上方。

合并行

将光标所在行与下一行合并,J

行内搜索

f在行内进行搜索,并将光标移至搜索到的下一个指定字符。

搜索整个文件

"/"搜索单词,命令n去找下一个

全局搜索和替换

使用ex命令来执行几行之内或整个文件的搜索和替换操作。

bash 复制代码
:%s /Line/line/gc
组成 含义
: 分号用于启动一条ex命令
% 确定了操作作用的范围。%代表从第一行到最后一行。还可以表示为1,5.。或者是1,$.从第一行到最后一行。如果不指定,知识适用于第一行。
s 指定了具体的操作,本次为替换操作
/Line/line 搜索和替换的文本
g 代指global,如果缺失,那么只替换每一行第一个
c 在每次替换前,向用户发出询问

加入c后出现

他们大的功能是

功能键 行为
y 执行替换
n 跳过本次替换
a 执行此次替换和之后的所有替换
q 停止替换
l 执行此次替换后退出
Ctrl-E,Ctrl-Y 分别是向下滚动和向上滚动

编辑多个文件

bash 复制代码
vi file1 file2 file3 ...

切换文件

切换下一个文件

bash 复制代码
:n

切换上一个文件

bash 复制代码
:N

查看正在编辑的文件列表

bash 复制代码
:buffers

切换文件

bash 复制代码
:buffer 2

载入更多文件

bash 复制代码
:e ls-output.txt

插入整个文件

将光标移动到插入位置

bash 复制代码
:r foo.txt
相关推荐
xiaoye-duck11 分钟前
《Linux 网络编程》深入理解数据链路层:从MAC帧到ARP协议的底层原理详解
linux·网络
AAA代码批发商22 分钟前
Days 47 IMX6ULL 裸机开发:按键轮询实验 + 外部中断原理剖析(上)
笔记·学习·imx6ull·裸机开发·#arm中断
sunoo-22930 分钟前
【ARM嵌入式学习笔记Day6】一文打通i.MX6ULL时钟体系:PLL/PFD/预分频+滞回比较器全解析
arm开发·笔记·vscode·单片机·imx6ull·汇编语言
阿钱真强道32 分钟前
06 嵌入式操作系统 | vim 与软件管理:apt / 源码编译
ubuntu·vim·嵌入式·apt·源码编译
j7~1 小时前
【Linux 网络】四十.《网络基础(传输层协议:UDP、TCP)》--中篇
linux·tcp·tcp协议·确认应答机制·连接管理机制·tcp流量控制
牢姐与蒯1 小时前
Linux进程间通信(三).基于匿名管道的进程池的实现
linux·运维·服务器·ubuntu
景煜拾年1 小时前
RHCA-Docker知识点整理
运维·笔记
凤年徐1 小时前
C++ 仿 muduo 高并发服务器:用户态缓冲区 Buffer 模块实现
linux·c++
Java红桃峰峰日拱一卒3 小时前
在jdk8的centos上安装jdk17
linux·jdk17·jdk8
M78佐菲9 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习