vi vim 末尾编辑按GA 在最后一行下方新增一行编辑按Go

vim 快速跳到文件末尾 在最后一行下方新增一行

移到末尾,并且进入文本录入模式 GA (大写G大写A)

在一般模式(刚进入的模式,esc模式)
GA Shift +ga

Gshift+g 到最后一行

然后 A shift+a 到本行末尾 并且进入文本录入模式

在最后一行下方新增一行 (光标换行,文字不换行) Go (大写G小写o)

在一般模式(刚进入的模式,esc模式)
Go Shift+g 然后 o

Gshift+g 到最后一行

然后 小写o 在该行下方新增一行

目录

vi的多种工作模式

  1. 一般模式,刚进入vi的模式, esc模式,我觉得可叫快捷键模式(按键模式), 按esc的模式
  2. 文本输入模式(a , A , i , I , o , O , s , S ,C进入插入模式 R进入覆盖模式)
  3. 底部命令行模式(冒号:开头,/开头,?开头)
  4. 连续字符串选择可视模式(v)
  5. 块选择可是模式(ctrl+v)

移到末尾,并且进入文本录入模式

在一般模式(刚进入的模式,esc模式)
GA Shift +ga

Gshift+g 到最后一行

然后 A shift+a 到本行末尾 并且进入文本录入模式

在最后一行下方新增一行 (光标换行,文字不换行)

在一般模式(刚进入的模式,esc模式)
Go Shift+g 然后 o

Gshift+g 到最后一行

然后 小写o 在该行下方新增一行

扩展知识

光标快速移动

首行尾行

到最后行是在 esc模式下 键盘大写时按G键 或 小写时按shift+g

到第一行是按两次小写g gg 或者 输入:0:1

  • gg:0:1 --------首行
  • G ----------------------尾行
    888G888gg:888 到第888行或尾行

H屏首   M屏中   L屏尾

行首行尾
  • Ashift+a 移动到行尾,并进入文本录入模式
  • $ 移动到行末尾
  • 0 移动到行首 (零)
  • ^ 移动到本行第一个字符

新增行, 并进入文字录入模式

  • 在当前行下方新增一行并进入编辑模式, 用 o 小写
  • 在当前行上方新增一行并进入编辑模式, 用 O 大写

复制剪切粘贴

复制

3yhy3h光标前三字符   3yly3l光标及后两字符
yy 本行   y0行首到光标   y^本行第一个字符到光标   y$光标到行尾
3yyy3y 本行和下两行
yw 光标 至 空格后出现字符

剪切(删除)

剪切的d语法如同复制的y语法
3dhd3h光标前三字符   3dld3l光标及后两字符
dd 本行   d0行首到光标   d^本行第一个字符到光标   d$光标到行尾
3ddd3d 本行和下两行

x 剪切光标字符
X 剪切光标前一个字符

删除,并进入文字插入模式

C 光标到行末
3chc3h光标前三字符   3clc3l光标及后两字符
cc 本行   c0行首到光标   c^本行第一个字符到光标   c$光标到行尾
3ccc3c 本行和下两行

可视化选择复制或剪切

先将鼠标移到想要的开始位置,然后按v

然后就可以通过 上下左右 像鼠标按住左键那样选择

选好区域后按y复制,按d剪切

粘贴

p 粘贴到光标后
P 粘贴到光标前

撤销重做

u撤销
ctrl+r 重做

查找替换

查找

支持正则表达式
/pattern 向下查找pattern的匹配
?pattern 向上
n 下一个
N 上一个

替换

:s/a/b 本行第一个a变b
:s/a/b/g 本行所有a变b
:%s/a/b 所有行第一个a变b
:%s/a/b/g 所有行所有a变b , 整个文档的a变b

限制在可视的选定区域进行替换

用光标确定起始点, 然后v进入连续字符串选择, 或ctrl+v进入块选择

按冒号: , 底部出现 :'<,'>

:'<,'>后追加s/pattern/content/g 变成 :'<,'>s/pattern/conten/g

回车就能将pattern匹配到的内容替换

保存退出

:w----------------保存
:q----------------退出
:q! --------------强制退出
:wqZZ--- 保存退出
:wq!------------ 强制保存退出

行号

:set nu 显示行号 :set nonu 关闭行号

其它

. 重复上一个动作 (点)
n空格键 光标移到n个字符后
n回车键 光标下移n行

动作后会进入文字输入模式

进入文字输入插入模式 INSERT模式

i 光标前插入
a 光标后插入
I 光标移到本行第一个字符后开始插入
O 光标上方插入一行
o 光标下方插入一行
S 删除本行
s 删除光标字符
C 删除光标到行尾
c 小c操作语法类似dy , 作用是删除, 如同d, 只是执行后会进入文字输入插入模式
3chc3h光标前三字符   3clc3l光标及后两字符
cc 本行   c0行首到光标   c^本行第一个字符到光标   c$光标到行尾
3ccc3c 本行和下两行

R进入覆盖模式,然后按键盘insert按键

进入文字输入覆盖模式 REPLACE模式

在插入模式下按insert按键
R 直接进入覆盖模式 (小写r接字符只替换光标处一个字符,替换后依旧在一般模式)

解决Ubuntu22.04Desktop桌面版的vim的编辑模式下的上下左右变成ABCD

Ubuntu22.04Desktop桌面版的vim的编辑模式下的上下左右变成ABCD , 退格键也失效

解决办法1, 卸载重装vim
bash 复制代码
sudo apt remove vim
bash 复制代码
sudo apt install -y vim
解决办法2 , 修改 /etc/vim/vimrc.tiny
  1. 将 兼容模式 改为 不兼容模式
    set compatible 改为 set nocompatible , 或加到后面
  2. 加入一条 set backspace=2

暂时没法用vi,vim , 可以用 nano 或 gedit 修改

远程用

bash 复制代码
sudo nano /etc/vim/vimrc.tiny

本机用

bash 复制代码
sudo gedit /etc/vim/vimrc.tiny

原先的 /etc/vim/vimrc.tiny

txt 复制代码
" Vim configuration file, in effect when invoked as "vi". The aim of this
" configuration file is to provide a Vim environment as compatible with the
" original vi as possible. Note that ~/.vimrc configuration files as other
" configuration files in the runtimepath are still sourced.
" When Vim is invoked differently ("vim", "view", "evim", ...) this file is
" _not_ sourced; /etc/vim/vimrc and/or /etc/vim/gvimrc are.

" Debian system-wide default configuration Vim
set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim82,/usr/share/vim>
set compatible

" vim: set ft=vim:

修改后的 /etc/vim/vimrc.tiny

txt 复制代码
" Vim configuration file, in effect when invoked as "vi". The aim of this
" configuration file is to provide a Vim environment as compatible with the
" original vi as possible. Note that ~/.vimrc configuration files as other
" configuration files in the runtimepath are still sourced.
" When Vim is invoked differently ("vim", "view", "evim", ...) this file is
" _not_ sourced; /etc/vim/vimrc and/or /etc/vim/gvimrc are.

" Debian system-wide default configuration Vim
set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim82,/usr/share/vim>

set nocompatible
set backspace=2

" vim: set ft=vim:

用脚本修改

bash 复制代码
echo '" Vim configuration file, in effect when invoked as "vi". The aim of this
" configuration file is to provide a Vim environment as compatible with the
" original vi as possible. Note that ~/.vimrc configuration files as other
" configuration files in the runtimepath are still sourced.
" When Vim is invoked differently ("vim", "view", "evim", ...) this file is
" _not_ sourced; /etc/vim/vimrc and/or /etc/vim/gvimrc are.

" Debian system-wide default configuration Vim
set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim82,/usr/share/vim>

set nocompatible
set backspace=2

" vim: set ft=vim:' | sudo tee /etc/vim/vimrc.tiny

或者

bash 复制代码
sudo sed -ie 's/compatible/nocompatible\nset backspace=2/'  /etc/vim/vimrc.tiny

查看并试验vim的上下左右

bash 复制代码
sudo vi /etc/vim/vimrc.tiny

还原

bash 复制代码
echo '" Vim configuration file, in effect when invoked as "vi". The aim of this
" configuration file is to provide a Vim environment as compatible with the
" original vi as possible. Note that ~/.vimrc configuration files as other
" configuration files in the runtimepath are still sourced.
" When Vim is invoked differently ("vim", "view", "evim", ...) this file is
" _not_ sourced; /etc/vim/vimrc and/or /etc/vim/gvimrc are.

" Debian system-wide default configuration Vim
set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim82,/usr/share/vim>
set compatible

" vim: set ft=vim:' | sudo tee /etc/vim/vimrc.tiny
相关推荐
电子云与长程纠缠7 小时前
UE5.3中通过编辑器工具创建大纲菜单文件夹
java·ue5·编辑器
lucky九年7 小时前
vscode翻译插件
ide·vscode·编辑器
真·Wild·攻城狮8 小时前
【码农日常】Vscode Clangd初始化失败(Win10)
ide·vscode·编辑器
七灵微8 小时前
【测试】【Debug】vscode中同一个测试用例出现重复
ide·vscode·编辑器
励志成为嵌入式工程师13 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
WZF-Sang20 小时前
Linux—进程学习-01
linux·服务器·数据库·学习·操作系统·vim·进程
leptune1 天前
coding程序猿的专属vim
vim
4U2471 天前
Linux入门之vim
linux·编辑器·vim·命令模式·底行模式
Liquor14191 天前
vim 编辑器
java·linux·c语言·开发语言·python·编辑器·vim
skywalk81631 天前
三周精通FastAPI:33 在编辑器中调试
python·编辑器·fastapi