vim 快速跳到文件末尾 在最后一行下方新增一行
移到末尾,并且进入文本录入模式 GA
(大写G大写A)
在一般模式(刚进入的模式,esc模式)
GA 或 Shift +ga
先 G
或 shift+g
到最后一行
然后 A
或 shift+a
到本行末尾 并且进入文本录入模式
在最后一行下方新增一行 (光标换行,文字不换行) Go
(大写G小写o)
在一般模式(刚进入的模式,esc模式)
Go 或 Shift+g 然后 o
先 G
或 shift+g
到最后一行
然后 小写o
在该行下方新增一行
目录
- [vim 快速跳到文件末尾 在最后一行下方新增一行](#vim 快速跳到文件末尾 在最后一行下方新增一行)
-
- [移到末尾,并且进入文本录入模式 `GA` (大写G大写A)](#移到末尾,并且进入文本录入模式
GA
(大写G大写A)) - [在最后一行下方新增一行 (光标换行,文字不换行) `Go` (大写G小写o)](#在最后一行下方新增一行 (光标换行,文字不换行)
Go
(大写G小写o)) - vi的多种工作模式
- 移到末尾,并且进入文本录入模式
- 在最后一行下方新增一行 (光标换行,文字不换行)
- 扩展知识
- 附
-
- 解决Ubuntu22.04Desktop桌面版的vim的编辑模式下的上下左右变成ABCD
-
- [解决办法1, 卸载重装vim](#解决办法1, 卸载重装vim)
- [解决办法2 , 修改 `/etc/vim/vimrc.tiny`](#解决办法2 , 修改
/etc/vim/vimrc.tiny
)
- [移到末尾,并且进入文本录入模式 `GA` (大写G大写A)](#移到末尾,并且进入文本录入模式
vi的多种工作模式
- 一般模式,刚进入vi的模式, esc模式,我觉得可叫快捷键模式(按键模式), 按esc的模式
- 文本输入模式(
a
,A
,i
,I
,o
,O
,s
,S
,C
进入插入模式R
进入覆盖模式) - 底部命令行模式(冒号
:
开头,/
开头,?
开头) - 连续字符串选择可视模式(
v
) - 块选择可是模式(
ctrl+v
)
移到末尾,并且进入文本录入模式
在一般模式(刚进入的模式,esc模式)
GA 或 Shift +ga
先 G
或 shift+g
到最后一行
然后 A
或 shift+a
到本行末尾 并且进入文本录入模式
在最后一行下方新增一行 (光标换行,文字不换行)
在一般模式(刚进入的模式,esc模式)
Go 或 Shift+g 然后 o
先 G
或 shift+g
到最后一行
然后 小写o
在该行下方新增一行
扩展知识
光标快速移动
首行尾行
到最后行是在 esc模式下 键盘大写时按G
键 或 小写时按shift+g
键
到第一行是按两次小写g gg
或者 输入:0
或:1
gg
或:0
或:1
--------首行G
----------------------尾行
888G
或888gg
或:888
到第888行或尾行
H
屏首 M
屏中 L
屏尾
行首行尾
A
或shift+a
移动到行尾,并进入文本录入模式$
移动到行末尾0
移动到行首 (零)^
移动到本行第一个字符
新增行, 并进入文字录入模式
- 在当前行下方新增一行并进入编辑模式, 用
o
小写 - 在当前行上方新增一行并进入编辑模式, 用
O
大写
复制剪切粘贴
复制
3yh
或y3h
光标前三字符 3yl
或y3l
光标及后两字符
yy
本行 y0
行首到光标 y^
本行第一个字符到光标 y$
光标到行尾
3yy
或y3y
本行和下两行
yw
光标 至 空格后出现字符
剪切(删除)
剪切的d语法
如同复制的y语法
3dh
或d3h
光标前三字符 3dl
或d3l
光标及后两字符
dd
本行 d0
行首到光标 d^
本行第一个字符到光标 d$
光标到行尾
3dd
或d3d
本行和下两行
x
剪切光标字符
X
剪切光标前一个字符
删除,并进入文字插入模式
C
光标到行末
3ch
或c3h
光标前三字符 3cl
或c3l
光标及后两字符
cc
本行 c0
行首到光标 c^
本行第一个字符到光标 c$
光标到行尾
3cc
或c3c
本行和下两行
可视化选择复制或剪切
先将鼠标移到想要的开始位置,然后按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!
--------------强制退出
:wq
或 ZZ
--- 保存退出
:wq!
------------ 强制保存退出
行号
:set nu
显示行号 :set nonu
关闭行号
其它
.
重复上一个动作 (点)
n空格键
光标移到n个字符后
n回车键
光标下移n行
动作后会进入文字输入模式
进入文字输入插入模式 INSERT模式
i
光标前插入
a
光标后插入
I
光标移到本行第一个字符后开始插入
O
光标上方插入一行
o
光标下方插入一行
S
删除本行
s
删除光标字符
C
删除光标到行尾
c
小c操作语法类似d
和y
, 作用是删除, 如同d
, 只是执行后会进入文字输入插入模式
3ch
或c3h
光标前三字符 3cl
或c3l
光标及后两字符
cc
本行 c0
行首到光标 c^
本行第一个字符到光标 c$
光标到行尾
3cc
或c3c
本行和下两行
先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
- 将 兼容模式 改为 不兼容模式
set compatible
改为set nocompatible
, 或加到后面 - 加入一条
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