Linux基础: 五. 文本编辑器vi和vim

文章目录

1、创建/打开文件

vi 文件名

打开一个文件,如果文件不存在,就创建它。

示例:

bash 复制代码
vi abc.txt
or
vim abc.txt

2、vi的两种模式

  • vi 有两种模式,命令模式和编辑模式,在命令模式下,键盘输入是命令,在编辑模式下,键盘输入的才是字符。
    进入vi时,初始是命令模式。

3、vi的常用命令

  • k 类似方向键上。

  • j 类似方向键下。

  • h 类似方向键左。

  • l 类是方向键右。

  • i 在光标所在位置前面开始插入。从命令模式切换到编辑模式。

  • a 在光标所在的位置后面开始插入。从命令模式切换到编辑模式。

  • o 在光标所在位置的下面插入空白行。从命令模式切换到编辑模式。

  • O 在光标所在位置的上面插入空白行。从命令模式切换到编辑模式。

  • I 在光标所在位置的行首开始插入。从命令模式切换到编辑模式。

  • A 在光标所在位置的行末开始插入。从命令模式切换到编辑模式。

  • Esc 从编辑模式切换到命令模式。

  • Ctrl+u 上翻半页。

  • Ctrl+d 下翻半页。

  • Ctrl+insert 相当于Ctrl+c。

  • Shift+insert 相当于Ctrl+v。

    以上两个命令在windows和UNIX中是通用的。

  • Ctrl+g 显示光标所在位置的行号和文件的总行数。

  • nG 光标跳到文件的第n行的行首。

  • G 光标跳到文件最后一行。

  • :5回车 光标跳到第5行。

  • :n回车 光标跳到第n行。

  • 0 光标跳到当前行的行首。

  • $ 光标跳到当前行的行尾。

  • w 光标跳到下个单词的开头。

  • b 光标跳到上个单词的开头。

  • e 光标跳到本单词的尾部。

  • x 每按一次,删除光标所在位置的一个字符。

  • nx 如"3x"表示删除光标所在位置开始的3个字符。

  • dw 删除光标所在位置到本单词结尾的字符。

  • D 删除本行光标所在位置后面全部的内容。

  • dd 删除光标所在位置的一行。

  • ndd 如"3dd"表示删除光标所在位置开始的3行。

  • yy 将光标所在位置的一行复制到缓冲区。

  • nyy 将光标所在位置的n行复制到缓冲区。

  • p 将缓冲区里的内容粘贴到光标所在位置。

  • r 替换光标所在位置的一个字符。

  • R 从光标所在位置开始替换,直到按下Esc。

  • cw 从光标所在位置开始替换单词,直到按下Esc。

  • u 撤销命令,可多次撤销。

  • J 把当前行的下一行文本拼接到当前行的尾部。

  • /abcd 在当前打开的文件中查找文本内容"abcd"。

    • n 查找下一个。
    • N 查找上一下。
  • . 重复执行上一次执行的vi命令。

  • ~ 对光标当前所在的位置的字符进行大小写转换。

  • :w回车 存盘。

  • :w!回车 强制存盘。

  • :wq回车 存盘退出。 write and quit

  • :w 文件名 把当前文件另存为......

  • :x回车 存盘退出。

  • :q回车 不存盘退出。

  • :q!回车 不存盘强制退出。

  • :g/aaaaaaaaa/s//bbbbbb/g回车 把文件中全部的aaaaaaaaa替换成bbbbbb。

  • vi .cpp .h 打开全部后缀为.cpp和.h的文件。

  • :n 切换到下一个文件。

相关推荐
刘晨鑫13 分钟前
Nginx性能调优
运维·nginx
ChengQianO14 分钟前
从 0 开始:Mac 下 UTM 虚拟机安装 ROS Noetic(Ubuntu 20.04)
linux·ubuntu·macos
深念Y37 分钟前
旧物新生:用魅蓝Note5 root后搭建家用Linux服务器(部署宝塔/AList/QB)
linux·运维·服务器·手机·diy·魔改·魅族
wanhengidc1 小时前
云手机会导致本地数据被读取吗
运维·服务器·数据库·游戏·智能手机
CDN3601 小时前
360CDN SDK 游戏盾实测:游戏防护与延迟优化
运维·游戏·网络安全
weixin_447640061 小时前
AI使用验证:windows上通过WSL2运行ubuntu,ubuntu的系统时间变慢且不同步
linux·运维·ubuntu
开开心心就好1 小时前
轻量级PDF阅读器,仅几M大小打开秒开
linux·运维·服务器·安全·pdf·1024程序员节·oneflow
RDCJM1 小时前
Linux下MySQL的简单使用
linux·mysql·adb
ljh5746491191 小时前
linux sed 命令
linux·运维·服务器
wbs_scy1 小时前
Linux 进程间通信之管道基础解析 —— 匿名管道的原理与实现
linux·运维·服务器