新建文件
- 打开终端,输入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也是有效字符