初识vi

34 阅读2分钟

新建文件

  • 打开终端,输入vi 文件名即可创建新文件或打开已有文件,注意中间是有个空格的。
  • vi 文件名 +18,打开文件时可以直接定位到18行。

vi的三种模式

  • 命令行模式:打开文件首先进入的就是命令行模式,这是vi的使用入口,可以通过命令,可以复制、粘贴、定位等操作。
  • 插入模式:编辑模式,正常编辑文字,按小写字母a/i/o/s进入插入模式。
  • 底行模式:光标位于屏幕的底行,可以输入命令,进行文件的保存、查找、替换等,:进入底行模式。

底行模式基础命令

  • w:保存文件
  • q:退出文件
  • x:保存文件并退出
  • q!:强制退出
  • w float_文件名:生成一个一模一样的文件。
  • esc返回命令模式,需要先返回命令模式才可以进入底行模式。

如碰到滚轮上下左右输入字母的情况下输入

  • sudo apt-get remove vim-common//卸载已有工具
  • sudo apt-get install vim//安装新工具

windows端和乌班图复制粘贴不互通

  • sudo apt-get autoremove open-vm-tools //卸载已有的工具
  • sudo apt-get install open-vm-tools //安装工具open-vm-tools
  • sudo apt-get install open-vm-tools-desktop //安装open-vm-tools-desktop

vi光标命令

  • h: 左
  • j:下
  • k: 上
  • l:右

行内移动

  • w:向后移动一个单词
  • b:向前移动一个单词
  • 0:行首
  • ^: 行首第一个不是空白字符的位置
  • $:行尾

行数移动

  • gg:文件顶部
  • G:文件末尾
  • 数字 gg:可以移动到对应行数
  • 数字 G:可以移动到数字对应行数
  • :set nu显示行号
  • :set nonu取消显示行号

屏幕移动

  • ctrl + b:向上翻页
  • ctrl + f:向下翻页

复制粘贴

  • v:进入可视化界面
  • V:选中一行
  • x:删除所在字符
  • dd:删除一行
  • y:复制
  • yy:复制一行
  • p:粘贴
  • y0:复制到行首
  • y$:复制到行尾
  • d0:剪贴到行首
  • d$:剪贴到行尾
  • range y-:块复制
  • range d-:块剪切
  • u:撤销上次命令
  • ctrl + r:恢复上次命令

替换命令

  • r:替换当前字符
  • R:替换当前光标后面的字符

查找命令

  • /str:查找命令
  • n:查找下一个
  • N:查找上一个
  • s:代表替换
  • g:全部替换

举例:

  • 10,20s/hello/HELLO/g 第十行到第二十行所有hello替换为HELLO
  • .,20s/hello/HEHLLO/g 当前行到第二十行所有hello替换为HELLO
  • 5,$s/hello/HELLO/g 第五行到最后一行所有hello替换为HELLO
  • %s/旧文本/新文本/g 全文替换

分屏命令 :sp横向增加分屏 :sp 文件名 :vsp竖向增加分屏 :vsp 文件名

数据输入输出函数

  • putchar('');只适合输出单个字符
  • getchar()是个标准输入函数函数,读取单个字符,成功返回int类型读取的字符,失败返回eof通常为-1

格式输出函数附加格式说明符

  • printf("",)
  • m.n: 指定宽度和精度(如 %7.2f 表示总宽度 7,小数点后 2 位)
  • .:用变量指定宽度或精度如 printf("%*.*f", w, p, x);
  • 0:左边不使用的空位置自动补零

格式输入函数

  • scanf("格式控制串",地址表);
  • 按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车结束。
  • 返值:正常,返回输入数据个数
  • 地址表:变量的地址,常用取地址运算符&
  • 在输入字符时,空格、tab也是有效字符