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

vi | vim基本使用

vim三模式:① 输入模式    ②命令模式      ③末行模式(编辑模式)

vim四模式:① 输入模式    ②命令模式      ③末行模式(编辑模式)  ④V模式

一、命令模式进入输入模式方法

二、命令模式基础操作:

1.移动光标

1)光标移动:h   j   k  l  (备用方向键)

                       左 下 上 

2)移动到文件   gg

      移动到文件    G   shift+g

3)  移动到行    ^  

     移动到行    $

4)  移动到指定行 :n  移动到第n行

2.删除(剪切) 复制

1)删除单个字母       

 x    

多个nx    (一般不用)

2)删除单行(剪切) 

dd   

多行ndd      :n1, n2d指定范围行   

3)粘贴到光标      

小p              

复制单行       yy

4)粘贴到光标       

大P    shift+p     

复制n行        nyy

5)从光标所在行删除到文件

dG d$

   从光标所在行删除到文件

d^

3.撤销  u    U一次性   反撤销ctrl+r

4.替换  r   替换光标所在单个字符

       R   从光标所在开始替换,esc结束

       “r”键替换单一字符,实际使用时,比进入输入模式删除 x 再修改

三、末行模式(编辑模式)基础操作:

1.保存退出方式

:w保存不退出

先输入:w (新文件名)另存为新文件 再:wq 保存退出

:q     不退出·

:wq   保存退出

:q     强制不保存退出,用于修改文件之后,不保存数据退出

:wq  强制保存退出, 对文件没有写权限的时候,强制写入数

2.常用显示行号set nu

set nu手工建立vim配置文件  放在 .vimrc 可多文件次使用

vim 支持更多的设置参数,:set all”进行查看

补充:Windows 下回车符在 Linux 中是用“^M$”符号显示,而不是$”符。这样会导致 Windows下编辑的程序脚本,无法在 Linux 中执行。这时可以通过命令“dos2unix”,把 Windows 格式转为 Linux格式,当然反过来“unix2dos”命令就是把 Linux 格式转为 Windows 格式。这两个命令默认没有安装,需要手工安装才能使用。

3.查找 /查找内容    从光标所在行向下查找    按n 是下一个

     \ 查找内容                 上

取消高亮  :noh   或者  /  输入一个搜不到的

4.替换

:1,10s/old/new/g    替换 1 到 10 行的所有 old 为 new

:%s/old/new/g      替换整个文件的 old 为 new(建议手工替换)

:1,10s/^/#/g       替换 1 10 行打备注

:1,10s/^#//g        取消行首注释

而在 C 语言,PHP 语言等大多数语言中,是使用“//”开头作为注释的,我们当然用 vim 来写这些程序语言脚本,批量//”注释 :1,10s/^/\/\//g 1 到 10行,                                        

  取消 1 到 10 行行首的//      :1,10s/^\/\///g

5.  :ab 源字符  替换字符

需频繁输入某个长字符串(比如邮箱),使用字符串替换, 放在 .vimrc 可多文件使用

:ab mymail 45731230@163.com 当碰到“mymail”时,转变为邮箱

当下次输入源字符 敲空格 就变换成替换字符  

6.  导入其他文件        :r 文件名 把文件内容导入所在光标位置

   不退出查看命令      :!命令 在 vim 中执行系统命令  :r date!导入时间(常用)

    多文件打开(参考另外文件)

​​​​​​​

四、vim多文件小技巧:

vim -o  文件文件2    上下分屏

通过先按“ctrl+w”,再按“上下箭头”的方式在两个文件之间切换。

vim -O  文件文件2    左右分屏

通过先按“ctrl+w”,再按“左右箭头”的方式在两个文件之间切换。


http://www.kler.cn/news/311756.html

相关文章:

  • 视频相关处理
  • 基于Delphi的题库生成系统
  • spark读mongodb
  • HTB-Jerry(tomcat war文件、msfvenom)
  • Unity制作角色溶解变成光点消失
  • GPT提示词分享 —— 深度思考助手
  • 【Vue】VueRouter路由
  • Spring系统学习(一)——初识Spring框架
  • 第五届“马栏山杯”国际音视频算法大赛创新应用赛投票环节正式启动啦!
  • Json和Http专栏
  • linux如何查看当前的目录所在位置
  • GDPU 信息安全 天码行空1 用Wireshark分析典型TCP/IP体系中的协议
  • 【vue】vue3+ts对接科大讯飞大模型3.5智能AI
  • MongoDB的安装和使用
  • React Zustand状态管理库的使用
  • 性能优化一:oracle 锁的原则
  • 手机实时提取SIM卡打电话的信令和声音-新的篇章(一、可行的方案探讨)
  • 【简单记录】Linux系统安装ZooKeeper
  • 【电路笔记】-运算放大器比较器
  • 在线查看 Android 系统源代码 Git repositories on android
  • YOLOv9改进策略【注意力机制篇】| MCAttention 多尺度交叉轴注意力
  • vue和thinkphp路由伪静态配置
  • 前端vue-子组件对于父组件的传值的约束
  • cuda与机器学习
  • C++ ——string的模拟实现
  • 字节跳动的微服务独家面经
  • 详细分析Pytorch中的register_buffer基本知识(附Demo)
  • 9.19工作笔记
  • fmql之驱动程序编写(首次)
  • 浏览器插件利器--allWebPluginV2.0.0.20-beta版发布