vi
在一般模式下的功能按键
移动光标
0(数字)或Home:移动到这一行的开头
$或End:移动到这一行结尾
G:移动到这个文件最后一行
gg:移动到这个文件的第一行
n+回车:向下移动n行
查找
/word:从光标开始后面的字符串查找一个word字符串
:n1,n2s/word1/word2/g:从n1行到n2行中找到word1这个字符串并且替换为word2
:1,$/word1/word2/g:第一行到最后一行找单词并替换(若在g后面添加c,则还需要确认是否更改)
删除、复制与粘贴
x与X:x代表删除光标后面一个字符,X代表删除光标前面一个字符
dd:删除(剪贴)光标在的那一整行
ndd:删除(剪贴)删除光标所在的向下n行(包括光标的一行)
yy:复制光标所在的一行
nyy:复制光标(包括光标的一行)向下复制n行
p与P:将已复制的内容粘贴在光标的下一行,P反之
u:恢复前一个操作
Ctrl+r:重做上一个操作
.重复前一个操作的意思
一般命令模式切换到编辑模式的可用的按键说明
i与I:i为目前光标坐在处插入,I目前所在行的第一个非空格符处开始插入
a与A:a为目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入
o与O:o为在目前光标所在的下一行处插入新的一行,O为目前光标坐在处的上一行插入新的一行
r与R:进入替换模式,r只会替换光标所在的那一个字符一次,R会一直替换光标所在的文字,知道按下Esc为止。
一般命令模式切换到命令模式的可用按键说明
命令模式的保存、退出等命令
:w!:若文件属性为只读时,强制写入该文件。
:q:退出vi
:q!:不保存退出
:wq:保存后退出,若为:wq!则为强制保存后退出
:set nu:设置行号
:set nonu:取消行号
:set autoindent:自动缩进
:set noautoindent:取消自动缩进
:set backup:自动保存备份文件
:syntax on:根据程序相关语法显示不同颜色
:syntax off:取消~
:set bg=dark:可用显示不同的颜色色调,默认是light(感觉dark看的清楚些)
:set hlsearch或:set nohlsearch:hlsearch就是high light search,这个就是设置是否查找的字符串反白的设置,默认值是hlsearch
:w filename:将文件保存为另一个文件
———————————————————————————————————————————————————————
vim在执行时,会生成一个.swp文件,也就是缓存
vim的一般命令模式下按下Ctrl+z的组合键时,vim会被丢到后台去执行
可视区块
v:字符选择,会将光标经过的地方反白选择
V:行选择,会将光标经过的行反白选择
Ctrl+v:可视区块,可以用矩形的方式选择数据
y:将反白的地方复制起来
d:将反白的地方删除
p:将刚刚复制的区块,在光标所在处粘贴
———————————————————————————————————————————————————————
vim窗口是相互独立的,所以无法用vim里面自带的指令进行复制,但是可以用vim同时来开启两个文件,在用里面的指令进行复制和粘贴。
vim中的关键词补全功能
Ctrl+x->Ctrl+n 通过目前正在编辑的这个 文件的内容文字 作为关键词,予以补齐
Ctrl+x->Ctrl+o 以扩展名作为语法补充,以vim内置的关键词,予以补齐
vim环境设置与记录:~/.vimrc 和 ~/.viminfo
第一个文件是vim的环境设置,可以调字体、亮度等...
第二个文件是记录你曾经在此文件上的操作。
———————————————————————————————————————————————————————
其他vim使用注意事项
如果文件使用的是GBK编码,但在vim终端界面中使用的是UTF-8编码,由于编码不同,则会出现中文乱码。
这时你需要考虑的有这些:
1.你的Linux系统默认支持的语系数据:这与/etc/locale.conf有关
2.你的终端(bash)的语系:这与LANG、LC_ALL这几个变量有关
3.你的文件原本的编码
4.打开终端的软件,例如 在GNOME下面的窗口界面
最重要的是上面的三、四点,只要这两个编码一致,你就能够正确的看到与编辑你的中文文件,否则就会看到一堆乱码
DOS的换行符:^M$(CR与LF)
Linux的换行符:$(LF)
Linux下面的命令开始执行时,它的判断依据是回车,而Linux的回车为LF,DOS是CRLF,在这样的情况下,如果是一个shell脚本的程序文件,可能会造成程序无法进行的状态,因为它会误判程序所执行的命令内容。
但是可以把Windows里的文件进行格式转换成为Linux就行,可以用Unix2dos或dos2unix来转换换行格式
语系编码转换
iconv -f 原本编码 -t 新编码 filename [-o newfile]
--list:列出iconv支持的语系
-f:from,亦即来源之意,后接原本的编码格式
-t:to,亦即后来的新编码是什么格式
-o file:如果要保留原本的文件,name就使用-o 新的文件名,可以建立新编码文件
将繁体中文的UTF-8转简体的UTF-8:iconv -f utf8 -t big5 file.utf8 | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o file.gb.utf8(好麻烦,ε(┬┬﹏┬┬)3)