当前位置: 首页 > news >正文

vim 命令复习

命令模式下的命令及快捷键

# dd删除光所在行的内容
# ndd从光标所在行开始向下删除n行
# yy复制光标所在行的内容
# nyy复制光标所在行向下n行的内容
# p将复制的内容粘贴到光标所在行以下(小写)
# P将复制的内容粘贴到光标所在行以上(大写)
# ^立即跳转到光标所在行的行首
# $立即跳转到光标所在行的行尾
# gg跳转到文档的第一行行首
# G跳转到文档的最后一行行首
# ngg/G 跳转到第n行
# u撤销上一次编辑
# n(↑/↓/←/→)向上/下/左/右移动n字符
# w:向右跳转,如果光在字母上则跳转到下一个符号上,如果光标在符号上则跳转到下一个字母上,如果是文档是文本则调准到下一个单词
# b:与w相反,它是往左跳

pP复制命令

具体场景​​
​​1. 复制单行内容​​
​​复制整行​​(按 yy 或 Y 复制):
p → 粘贴到 ​​当前行下方​​(新行)
P → 粘贴到 ​​当前行上方​​(新行)
​​2. 复制多行内容​​
复制多行后(如 3yy 复制3行):
p → 粘贴到 ​​当前行下方​​(多行整体插入)
P → 粘贴到 ​​当前行上方​​(多行整体插入)
​​3. 复制单词或字符​​
复制单词(按 yw 或 yiw)或字符(按 y + 移动命令):
p → 粘贴到 ​​光标右侧​​(字符后)
P → 粘贴到 ​​光标左侧​​(字符前)实用技巧​​
​​1. 快速调整代码块位置​​
复制一行(yy)→ 移动到目标行 → 按 p 或 P 快速上下移动代码
5yy p #复制光标所在行向下5行的内容并将复制的内容粘贴到光标所在行以下

命令模式→插入(编辑)模式

# s————删除光标所在的字符 并进入编辑模式
# S————删除光标所在行的内容 并进入编辑模式
# o————向光标所在行下方插入新行 并进入编辑模式
# O————向光标所在行上方插入新行 并进入编辑模式
# a————在光标右侧移动一个字符,并进入编辑模式
# A————光标移动到行尾,并进入插入模式
# i————进入编辑模式,在光标所在位置进行编辑
# I————回到光标所在行的行首 并进入编辑模式
# ESC 退出笔记模式回到 命令模式

末行模式

# :q————未做修改的情况下可以直接退出
# :wq————保存并退出
# :w————保存
# :w /dir/file————将文件另存到/dir/file中
# :q!————放弃修改并退出
# :wq!————强制保存并退出
# :set nu————开启文档的行号(set number)
# :set nonu————关闭文档的行号(set no number)

末行模式的搜索替换

# /搜索 /+要搜索的字符串
# :n1,n2 s/old/new/g
n1:起始行
n2:中止行
s:表示搜索
old:表示要搜索的目标字符串
new:要将new字符串替换掉old字符串
g:替换所有的old字符串
%:表示全文#:r /dir/file————在光标位置处写入指定的新文件
#:g/word/d————在全局范围内删除指定的字符串
#:n1,n2 d————删除n1到n2的行
#:n1,n2 copy n3—————n1到n2为止内容复制到n3行

vim的配置文件

# /etc/vimrc是全局配置文件,如果root用户修改了该文件,所有用户的vim都会受到影响。
# ~/.vimrc 这个用户个人的配置文件他的优先级高于全局的配置文件# set number 会使vim默认开始行号
# set tabstop=1 他会修改vim的tab的显示效果。
# set softtabstop=4 他会修改tab键的点击效果,它的效果取决于tabstop的值。
# set shiftwidth=4 自动缩进的宽度
# set mouse=a 开启鼠标
# syntax on 开启语法检测功能# set hlsearch            "高亮度反白
# set backspace=2     "开启删除键的功能
# set autoindent        "自动缩排

修改vim的配置文件

 如要修改vim默认配置使开启行号,自动缩进,tab快捷键空4格

[root@server ~]# vim ~/.vimrc
....1 set number                     #会使vim默认开始行号2 set autoindent                #"自动缩排"3 set smartindent               #开启智能缩进模式,​​基于代码逻辑自动调整缩进4 filetype plugin indent on     #filetype on​​​​功能​​:启用​​文件类型检测​​,# filetype plugin on​​功能​​:# 加载与文件类型相关的​​插件​​(位于 ~/.vim/ftplugin/),     #iletype indent on​​​功能​​:# 启用与文件类型相关的​​缩进规则​​(位于 ~/.vim/indent/),5 set tabstop=4                 #修改vim的tab的显示效果为空4格。6
....
"~/.vimrc" 6L, 83B           // ~/.vimrc 这个用户个人的配置文件他的优先级高于全局的配置文件                  

vim的异常模拟

# vim编辑xxx文件时,不是直接编辑xxx,而是复制一个副本名为.xxx.swp的文件,然后修编辑该文件。
# 当我们使用:wq保存时,会用.xxx.swp覆盖掉xxx文件,并且会删除.xxx.swp。
# 当我们使用:q!退出,会删除.xxx.swp。# 当在使用vim的过程中没有是 wq q!等退出方式 .xxx.swap就不会删除
# 这就会导致下一次再编辑此文件,会出现如下场景:E325: 注意
发现交换文件 ".passwd_copy.swp"所有者: root    日期: 日 10月 20 22:24:57 2024文件名: ~root/passwd_copy修改过: 是用户名: root      主机名: NLCSA2进程 ID: 8678 (STILL RUNNING)
正在打开文件 "passwd_copy"日期: 日 10月 20 22:20:15 2024(1) Another program may be editing the same file.  If this is the case,be careful not to end up with two different instances of the samefile when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.如果是这样,请用 ":recover" 或 "vim -r passwd_copy"恢复修改的内容 (请见 ":help recovery")。如果你已经进行了恢复,请删除交换文件 ".passwd_copy.swp"以避免再看到此消息。交换文件 ".passwd_copy.swp" 已存在!
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 退出((Q)), 中止((A)):# 此时输入E,忽略.xxx.swp中的修改重新编辑文件
# 此时输入R,会读取.xxx.swp中的修改,继续编辑。# 如果想要取消当前这种异常状态,在编辑过文件后,删除.xxx.swp文件即可

相关文章:

  • 为TA开发人员介绍具有最新改进的Kinibi-610a
  • js实现2D图片堆叠在一起呈现为3D效果,类似大楼楼层的效果,点击每个楼层不会被其他楼层遮挡
  • 稍早版本的ICG3000使用VXLAN建立L2 VPN
  • [PTA]2025 CCCC-GPLT天梯赛 胖达的山头
  • 『不废话』之Python管理工具uv快速入门
  • uv包管理器如何安装依赖?
  • 直播分享|TinyVue 多端实战与轻量图标库分享
  • 多头注意力(Multi‑Head Attention)
  • A2A + MCP:构建实用人工智能系统的超强组合
  • rlm.exe是什么
  • vue3:十一、主页面布局(修改左侧导航条的样式)
  • vue watch监听路由,第一次进入不触发解决办法
  • CLIP | 训练过程中图像特征和文本特征的在嵌入空间中的对齐(两个投影矩阵的学习)
  • vscode本地docker gdb调试python
  • Qt-托盘的实现
  • Qt信号槽连接的三种方法对比
  • 开源QML控件:进度条滑动控件(含源码下载链接)
  • 【得物】20250419笔试算法题
  • 高级java每日一道面试题-2025年4月22日-基础篇[反射篇]-如何通过反射创建一个对象实例?
  • ProxySQL 的性能优化需结合实时监控数据与动态配置调整
  • 金地集团:保交楼为经营的首要任务,将根据融资性现金流恢复程度等进行投资决策
  • 外贸50城,谁在“扛大旗”?
  • 印尼塔劳群岛发生6.2级地震,震源深度140千米
  • 教育部召开全国中小学幼儿园安全工作视频会议:加强校园安防建设
  • 成功卫冕!孙颖莎4比0战胜蒯曼,获澳门世界杯女单冠军
  • 错失两局领先浪费赛点,王楚钦不敌雨果无缘世界杯男单决赛