vim 命令复习

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

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

pP复制命令

cpp 复制代码
具体场景​​
​​1. 复制单行内容​​
​​复制整行​​(按 yy 或 Y 复制):
p → 粘贴到 ​​当前行下方​​(新行)
P → 粘贴到 ​​当前行上方​​(新行)
​​2. 复制多行内容​​
复制多行后(如 3yy 复制3行):
p → 粘贴到 ​​当前行下方​​(多行整体插入)
P → 粘贴到 ​​当前行上方​​(多行整体插入)
​​3. 复制单词或字符​​
复制单词(按 yw 或 yiw)或字符(按 y + 移动命令):
p → 粘贴到 ​​光标右侧​​(字符后)
P → 粘贴到 ​​光标左侧​​(字符前)

实用技巧​​
​​1. 快速调整代码块位置​​
复制一行(yy)→ 移动到目标行 → 按 p 或 P 快速上下移动代码
cs 复制代码
5yy p #复制光标所在行向下5行的内容并将复制的内容粘贴到光标所在行以下

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

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

末行模式

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

末行模式的搜索替换

cs 复制代码
# /搜索 /+要搜索的字符串
# :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的配置文件

cpp 复制代码
# /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格

cpp 复制代码
[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的异常模拟

cpp 复制代码
# 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 same
    file 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文件即可
相关推荐
晓13132 分钟前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
唐装鼠11 分钟前
Linux 下 malloc 内存分配机制详解
linux·malloc
予枫的编程笔记12 分钟前
【Linux入门篇】Linux运维必学:Vim核心操作详解,告别编辑器依赖
linux·人工智能·linux运维·vim操作教程·程序员工具·编辑器技巧·新手学vim
17(无规则自律)24 分钟前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
中二病码农不会遇见C++学姐39 分钟前
Linux下的.run文件
linux
予枫的编程笔记42 分钟前
【Linux入门篇】摆脱权限混乱困境:Linux用户组管理+sudo提权,一步到位
linux·linux运维·后端开发·linux用户管理·linux权限配置·chmod命令·sudo配置
一个人旅程~1 小时前
Dell n4020双系统分区步骤和linux优化操作
linux·windows·电脑
忆~遂愿1 小时前
CANN metadef 深度解析:动态形状元数据管理、图编译器接口规范与序列化执行机制
大数据·linux
予枫的编程笔记1 小时前
【Linux入门篇】Linux文件操作不用记满屏命令,掌握touch/cp/mv核心用法就够了
linux·tar·linux命令·tail·cat·linux文件管理·linux新手教程
learning-striving1 小时前
kali连不上网解决方法
linux·开发语言·网络·php·kali