【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
相关推荐
AOwhisky2 小时前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
问心无愧05132 小时前
ctf show web入门160 161
前端·笔记
c238562 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
凡人叶枫5 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
RisunJan5 小时前
Linux命令-pgrep (通过进程名查找进程 ID)
linux·运维
信创工程师-小杨6 小时前
Linux内网环境如何解决依赖的问题
linux·运维·服务器
设计师小聂!6 小时前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发
不吃土豆的马铃薯6 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
java知路6 小时前
linux yum 下载docker安装包及依赖安装包,并离线安装
linux·运维·docker
fanged6 小时前
设备树学习2--一个DTBO实验
linux·嵌入式开发