Linux开发起步学习笔记(5)----vi编辑器

vi:人机交互式文本编辑

用户偏好设置:

用户HOME目录下的文件.exrc,记作$HOME/.exrc(每用户一份,用户独立设置)。
set number 每行左边显示行号
set tabstop=4 制表符位置为4格对齐
:set 运行时检查、更改偏好设置
eg. vi ~/.exrc

vi的两种工作状态:

在这里插入图片描述

命令状态:键盘输入解释为命令

vi一启动就进入命令状态
一般按键无回显
以冒号可以引入行编辑的命令和查找命令
i:在当前字符前插入,a:追加
h:光标左移一列 j:光标下移一行 k:光标上移一行 l:光标右移一列,可直接使用方向键
命令前加一整数,表示这个命令连续执行多少遍
^将光标移至行首,$将光标移至行尾
w右移一个单词,b左移一个单词
移到指定行 :25(回车) :1(回车) :$(回车)
原点 . 代表当前行号 $代表最后一行的行号
括号配对:将光标移到一个括号上,按下%键,则光标自动定位到与他配对的那一个括号
删除字符:x
删除当前行:dd,ddd删除三行
替换光标处字符:r,每个字符的替换都需要一个r
取消上一次编辑操作:u
重复上一次编辑操作: .
存盘退出:ZZ/:wq(回车) 注意ZZ大写,即按下shift后按下zz键
存盘不退出::w(回车)
退出不存盘:q!(回车)
读入文件并插入到当前行之下:r file(回车)
写文件,把第50行至末尾的内容写到文件file中:50,$w file(回车)
删除并拷贝到剪贴板:10,50d(回车)、1,.d(回车)、.,$d(回车)
不删除,拷贝到剪贴板(yank) 1,50y(回车)
粘贴剪贴板信息:p
复制第5-10行到第56行之下5,10co56(回车)
移动8,34m78(回车)
两行合并:J,当前行和下面的行进行合并
刷新屏幕显示:ctrl+l
状态显示:ctrl+g,最屏幕最下行列出文件状态信息
模式查找:/正则表达式,n向下查找,N向上查找
替换命令 (有冒号) :n1,n2s/abc/xyz/g g表示是否将一行中的多个模式均进行替换,注意是正则表达式,必要时要用转义字符;s后面可以不使用/从而使用其他符号进行分割

文本状态:键盘输入解释为文本

可以输入多行,每输入完一行后按回车进入下一行
正文输入时有回显
输入完毕按esc退回到命令状态

linux使用中遇到的问题:

死机:存盘时屏幕卡死

原因:使用vi之后不能按下ctrl+s进行保存,因为进入了流量控制模式,不允许linux向终端发送数据,当然在屏幕上看不到信息。
解决方法:按下ctrl+q键流量控制解除。

意外中止问题:编辑结束后存盘时编辑成果丢失,文件内容未发生变化

存盘命令shift+zz,误操作为ctrl+zz,而这就导致当前程序运行挂起。
解救方法:调用bash的作业管理机制,恢复运行被stopped的进程
jobs 列表当前被stopped的进程
%1或fg%1 将1号进程恢复到前台运行

退格键无法使用:bash命令输入时,退格键可用,但运行自己写的程序时退格键无法使用

原因:当前终端的行律设置不正确
解决方法:退格符对应的ascii码可以用Crtl+H代替;或者,执行stty erase ^H可以设置退格键。
stty –a查看所有行律,看设置是否正确。

显示乱码问题:屏幕乱码,键盘输入只能看到画表用的框框符

原因:打开的文件不是文本文件,二进制的内容按字节送到终端,某个序列被终端按转义序列转换,修改了终端字符集,以后相同的码值按照其他字符集进行显示而不是ascii。
解决方法:断开连接,重新登录;以后不要将非文本文件在终端显示打开。

文本文件的格式问题:Linux的文本文件在Windows下打开,所有内容粘在一行内

原因:Linux和windows的文本文件的存储格式不同。两系统文本文件的行尾不同,linux存储换行符,Windows行尾存储回车和换行符。
解决方法:在linux完成格式转换后再用Windows处理(首选);或者,在Windows使用其他编辑器打开。
相关命令:dos2unix/unix2dos两种格式转换;file查看文件类型。
CRLF是Carriage-Return Line-Feed的缩写,意思是回车换行,就是回车(CR, ASCII 13, \r) 换行(LF, ASCII 10, \n)。当使用unix2dos对文本文件进行格式转换后,用file查看文件类型,则会看到这是一个带CRLF的ascii文件。

中文编码问题:

从Windows迁来的文件,只有在显示中文字符时是乱码。linux本生的中文信息正常显示。说明中文GBK与UTF8不兼容。
原因:
在这里插入图片描述
解决方法:与语言有关的环境变量LANG应为en_US.UTF-8.使用env | grep LANG.若有问题,设置方法为:export LANG=en_US.UTF-8
iconv:中文字符编码的转换。iconv –f utf8 –t gbk(from to )

终端配置:

配色和中文编码:终端不是默认的白底黑字,中文显示是乱码
解决方法:调整终端所用软件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值