vim的使用

vim文本编辑器

vim介绍

vim是Linux自带的文本编辑器,具有命令模式、编辑模式、末行模式三种模式。

模式间的切换:

  • 命令模式下,按键盘上的ia等键可进入编辑模式
  • 命令模式下,输入:可进入末行模式
  • 编辑模式下,按键盘上的esc键可回到命令模式
  • 末行模式下,按一次(慢退)或两次(快退)esc键可回到命令模式
vim打开文件方式 说明
vim filename 打开或新建一个文件,并将光标置于第一行的首部
vim -r filename 恢复上次vim打开时崩溃的文件
vim -R filename 用只读的方式打开文件

命令模式

光标移动

快捷键 功能描述
h、j、k、l 光标向左、下、上、右移动
gg 光标移动到首行
G 光标移动到末行
b/B 光标向前移动一个单词
w/W 光标向后移动一个单词
ctrl+b 或 PageUp 翻屏操作,向上翻
ctrl+f 或 PageDown 翻屏操作,向下翻
ctrl+u 向上翻半屏
ctrl+d 向下翻半屏
` 光标移动到上次编辑处
数字+G 快速将光标移动到指定行
数字+上下方向键 以当前光标为准,向上/下移动n行
数字+左右方向键 以当前光标为准,向上/下移动n个字符
H 光标移动到屏幕顶部
M 光标移动到屏幕中间
L 光标移动到屏幕底部
shift+6 光标移动到行首
shift+4 光标移动到行尾

选中内容

快捷键 功能描述
v 字符选中
V 或 shift+v 行选中

复制内容

快捷键 功能描述
y 复制已选中的文本到剪贴板
n+yy 复制光标所在行,此命令前可以加数字n,表示复制n行
yw 复制光标位置的单词
ctrl+v,方向键,yy ctrl+v,并按方向键选中区块,按下yy进行复制

粘贴内容

快捷键 功能描述
p 将剪贴板中的内容粘贴到光标后
P 将剪贴板中的内容粘贴到光标前

删除

快捷键 功能描述
x 删除光标所在位置的字符
X 删除光标前一个字符
dd 删除光标所在行,删除之后,下一行上移;严格来说它是剪切命令,可以配合p命令使用
D 删除光标位置到行尾的内容,删除之后,下一行不上移;也有剪切的作用
ndd 删除当前行(包括此行)后n行文本;可以理解成剪切多行,配合p命令使用
dG 删除光标所在行一直到文件末尾的所有内容

撤销/恢复

快捷键 功能描述
u 撤销
U 撤销所有编辑
ctrl+r 恢复

字符转换

快捷键 功能描述
~ 转换大小写
u 转成小写
U 转成大写

编辑模式

快捷键 功能描述
i 在当前光标所在位置插入,光标后的文本相应向右移动
o 在光标所在行的下方插入新的一行,光标停在空行首,等待文本输入
O 在光标所在行的上方插入新的一行,光标停在空行首,等待文本输入
a 在当前光标所在位置之后插入
A 在光标所在行的行尾插入,相当于光标移动到行尾再执行a命令

末行模式

保存/退出

快捷键 功能描述
wq 保存并退出vim编辑器
wq! 保存并强制退出vim编辑器
q 不保存并退出vim编辑器
q! 不保存并强制退出vim编辑器
w 保存但不退出vim编辑器
w! 强制保存文本
w filename 另存到filename文件中
x! 保存文本,并退出编辑器
ZZ 直接退出编辑器

查找

快捷键 功能描述
/abc 从光标所在位置向前查找字符串abc
?abc 从光标所在位置向后查找字符串abc
/^abc 查找以abc为行首的行
/abc$ 查找以abc为行尾的行

行号显示

快捷键 功能描述
set nu 行号显示
set nonu 取消行号显示

文件切换

使用vim打开多个文件后,在末行模式下可以进行切换。

快捷键 功能描述
files(%a表示激活状态,#表示上一个打开的文件) 查看当前打开的所有文件
open filename 切换到filename文件
bp 切换到上一个文件
bn 切换到下一个文件

扩展

在末行模式下,输入syntax on/off,能够显示或取消显示代码颜色。

vim内置计算器的使用:

  1. 进入编辑模式
  2. "ctrl+r,光标变成引号,输入=,光标转到最后一行
  3. 输入需要计算的内容,按下Enter键,计算结果会替代引号,光标恢复

vim的配置:

  1. 文件打开时,末行模式下输入的配置为临时配置,关闭文件后配置无效
  2. 修改个人配置文件,可以永久保存个人配置(~/.vimrc,如果没有可以自行创建)
  3. 修改全局配置文件,对每个用户生效(vim自带,/etc/vimrc)

注:个人配置文件优先级更高,当个人配置和全局配置发生冲突时,系统以当前用户的个人配置文件为准

处理异常:

  • 在编辑文件后,未正常保存退出时,会产生异常退出交换文件(.原文件名.swp);将交换文件删除后,再次打开文件时,便不会有提示:"#rm -f .原文件名.swp"。
相关推荐
Spring-wind27 分钟前
【linux】kill命令
linux
dreamer29234 分钟前
21、Tomato
linux·安全·web安全·网络安全·系统安全
LluckyYH1 小时前
代码随想录Day 46|动态规划完结,leetcode题目:647. 回文子串、516.最长回文子序列
数据结构·人工智能·算法·leetcode·动态规划
Data 3172 小时前
Shell脚本编程基础(二)
大数据·linux·运维·数据仓库·sql·centos·bash
古猫先生2 小时前
YMTC Xtacking 4.0(Gen5)技术深度分析
服务器·人工智能·科技·云计算
一水鉴天2 小时前
智能工厂的软件设计 “程序program”表达式,即 接口模型的代理模式表达式
开发语言·人工智能·中间件·代理模式
it技术分享just_free2 小时前
基于 K8S kubernetes 的常见日志收集方案
linux·运维·docker·云原生·容器·kubernetes·k8s
bmseven3 小时前
windows远程桌面连接ubuntu
linux·windows·ubuntu
Hiweir ·3 小时前
机器翻译之创建Seq2Seq的编码器、解码器
人工智能·pytorch·python·rnn·深度学习·算法·lstm
Element_南笙3 小时前
数据结构_1、基本概念
数据结构·人工智能