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 在该行下方新增一行

目录

  • vim 快速跳到文件末尾 在最后一行下方新增一行
    • 移到末尾,并且进入文本录入模式 `GA` (大写G大写A)
    • 在最后一行下方新增一行 (光标换行,文字不换行) `Go` (大写G小写o)
    • vi的多种工作模式
    • 移到末尾,并且进入文本录入模式
    • 在最后一行下方新增一行 (光标换行,文字不换行)
    • 扩展知识
      • 光标快速移动
        • 首行尾行
        • 行首行尾
      • 新增行, 并进入文字录入模式
      • 复制剪切粘贴
        • 复制
        • 剪切(删除)
        • 删除,并进入文字插入模式
        • 可视化选择复制或剪切
        • 粘贴
      • 撤销重做
      • 查找替换
          • 查找
        • 替换
          • 限制在可视的选定区域进行替换
      • 保存退出
      • 行号
      • 其它
      • 动作后会进入文字输入模式
        • 进入文字输入插入模式 INSERT模式
        • 进入文字输入覆盖模式 REPLACE模式
      • 解决Ubuntu22.04Desktop桌面版的vim的编辑模式下的上下左右变成ABCD
        • 解决办法1, 卸载重装vim
        • 解决办法2 , 修改 `/etc/vim/vimrc.tiny`

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 在该行下方新增一行




扩展知识

vi vim 键盘图

光标快速移动

首行尾行

到最后行是在 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
sudo apt remove vim
sudo apt install -y vim
解决办法2 , 修改 /etc/vim/vimrc.tiny
  1. 将 兼容模式 改为 不兼容模式
    set compatible 改为 set nocompatible , 或加到后面
  2. 加入一条 set backspace=2

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

远程用

sudo nano /etc/vim/vimrc.tiny

本机用

sudo gedit /etc/vim/vimrc.tiny

原先的 /etc/vim/vimrc.tiny

" 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

" 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:

用脚本修改

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

或者

sudo sed -ie 's/compatible/nocompatible\nset backspace=2/'  /etc/vim/vimrc.tiny

查看并试验vim的上下左右

sudo vi /etc/vim/vimrc.tiny

还原

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/157166.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51单片机-点阵屏led

代码配置 这样就能选择每一列哪个亮了 进行位选&#xff0c;段清零&#xff0c;这样就不会影响多列同时了 实现动画 1、使用文字摸提取文件&#xff0c;提取图案的16进制表示数组 offest作为偏移量&#xff0c;count作为计时。count10,偏移量加1&#xff0c;就相当于得到下一…

Http代理与socks5代理有何区别?如何选择?(一)

了解SOCKS和HTTP代理之间的区别对于优化您的在线活动至关重要&#xff0c;无论您是技术娴熟的个人、现代互联网用户还是企业所有者。在使用代理IP时&#xff0c;您需要先了解这两种协议之间的不同。 一、了解HTTP代理 HTTP&#xff08;超文本传输协议&#xff09;代理专门设计…

20.4 OpenSSL 套接字AES加密传输

在读者了解了加密算法的具体使用流程后&#xff0c;那么我们就可以使用这些加密算法对网络中的数据包进行加密处理&#xff0c;加密算法此处我们先采用AES算法&#xff0c;在网络通信中&#xff0c;只需要在发送数据之前对特定字符串进行加密处理&#xff0c;而在接收到数据后在…

[ 云计算 | AWS 实践 ] 使用 Java 列出存储桶中的所有 AWS S3 对象

本文收录于【#云计算入门与实践 - AWS】专栏中&#xff0c;收录 AWS 入门与实践相关博文。 本文同步于个人公众号&#xff1a;【云计算洞察】 更多关于云计算技术内容敬请关注&#xff1a;CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文&#xff1a; [ 云计算 | …

深度学习数据集大合集—疾病、植物、汽车等

最近又收集了一大批深度学习数据集&#xff0c;今天分享给大家&#xff01;废话不多说&#xff0c;直接上数据&#xff01; 1、招聘欺诈数据集 招聘欺诈数据集&#xff1a;共收集了 200,000 条数据&#xff0c;来自三个网站。 该数据集共收集了 200.000 条数据&#xff0c;分别…

UE5.0.3版本 像素流送 Pixel Streaming

目录 0 引言1 准备工作1.1 下载Node.js1.2 下载 PixelStreaming&#xff08;非必须&#xff09; 2 快速入门2.1 打包工程2.2 启动信令服务器2.3 启动工程2.4 打开网页 3 总结 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;UE虚幻引擎专栏&#x…

diffusers-Load adapters

https://huggingface.co/docs/diffusers/main/en/using-diffusers/loading_adaptershttps://huggingface.co/docs/diffusers/main/en/using-diffusers/loading_adapters 有几种训练技术可以个性化扩散模型&#xff0c;生成特定主题的图像或某些风格的图像。每种训练方法都会产…

【设计模式】第8节:结构型模式之“适配器模式”

一、简介 适配器模式是用来做适配的&#xff0c;它将不兼容的接口转换为可兼容的接口&#xff0c;让原本由于接口不兼容而不能一起工作的类可以一起工作。 适配器模式角色&#xff1a; 请求者client&#xff1a;调用服务的角色目标Target&#xff1a;定义了Client要使用的功…

Unity Perception合成数据生成、标注与ML模型训练

在线工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D场景编辑器 任何训练过机器学习模型的人都会告诉你&#xff0c;模型是从数据得到的&#xff0c;一般来说&#xff0c;更多的数据和标签会带来更好的性能。 …

[idea]关于idea开发乱码的配置

在JAVA开发中&#xff0c;一般统一设置为UTF-8的编码&#xff0c;包括但不限于开发工具、日志架构、虚拟机、文件编码等。常见配置如下&#xff1a; 1、IDEA工具 在idea64.exe.vmoptions、idea.exe.vmoptions中添加&#xff1a; -Dfile.encodingUTF-8 2、JAVA 运行在window…

钡铼技术ARM工控机在机器人控制领域的应用

ARM工控机是一种基于ARM架构的工业控制计算机&#xff0c;用于在工业自动化领域中进行数据采集、监控、控制和通信等应用。ARM&#xff08;Advanced RISC Machine&#xff09;架构是一种低功耗、高性能的处理器架构&#xff0c;广泛应用于移动设备、嵌入式系统和物联网等领域。…

TypeScript之装饰器

一、是什么 装饰器是一种特殊类型的声明&#xff0c;它能够被附加到类声明&#xff0c;方法&#xff0c; 访问符&#xff0c;属性或参数上 是一种在不改变原类和使用继承的情况下&#xff0c;动态地扩展对象功能 同样的&#xff0c;本质也不是什么高大上的结构&#xff0c;就…