VIM程序编辑器
vi与vim
vi:是一种文字处理器
所有的unix like系统都会内置vi文本编辑器
很多软件的编辑接口都会主动调用vi
vim:vi的高级版。是一个程序开发工具
会依据文件的扩展名或者文件内的开头信息判断文件内容,自动调用该程序的语法判断式,用颜色来显示程序代码
vi的使用
三种模式
一般模式 |
搜索与替换、删除字符、删除/复制/粘贴整行 |
编辑模式 |
编辑文件内容 |
命令行模式 |
即退出VI |
一般模式常用按钮
光标移动 |
|||
G |
移动到文件最后一行 |
||
n+G |
移动到文件第n行 |
||
n+↑ |
上移n行 |
||
n+↓ |
下移n行 |
||
[ctrl]+[f] |
下翻页 |
||
[ctrl]+[b] |
上翻页 |
||
0或[home] |
移动到行首 |
||
$或[end] |
移动到行尾 |
||
查找与替换 |
|||
/word |
向下查询word |
||
?word |
向上查询word |
||
n |
重复前一个查询 |
||
N |
反向重复前一个查询 |
||
:n1,n2s/word1/word2/g |
在n1与n2行之间,将word1替换为word2,且不询问 |
||
:1,$s/word1/word2/g |
从第一行到最后一行,,将word1替换为word2,且不询问 |
||
:1,$s/word1/word2/gc |
从第一行到最后一行,,将word1替换为word2,询问 |
||
行号 |
|||
:set nu |
显示行号 |
||
:set nonu |
不显示行号 |
一般模式--->编辑模式
i |
在光标所在处插入 |
I |
在光标所在行第一个非空格符处插入 |
a |
在光标所在处的下一个字符处插入 |
A |
在光标所在行的最后一个字符处插入 |
o |
在光标所行的下一行插入新的一行 |
O |
在光标所在行的上一行插入新的一行 |
r |
只会替换光标所在的那个字符一次 |
R |
一直替换,直到[esc] |
一般模式--->命令行模式
:q! |
不保存退出 |
:wq |
保存退出 |
:w[filename] |
另存为filename |
:r[filename] |
读入filename的文件数据,加到光标所在行后面 |
:n1,n2 w [filename] |
n1到n2行保存为filename |
:! command |
暂时离开vi到命令行模式,并执行command |
.swp文件
多人同时编辑 |
找到对应人协商 |
||
不明原因 |
不确定是否有用 |
Recover |
打开.swp文件,自行选择是否保存 注:.swp文件不会自动删除,需手动删除 |
确定无用 |
Delete |
vim的功能
块选择
v |
字符选择,将经过的字符反白选择 |
V |
行选择,将经过的行反白选择 |
[ctrl]+v |
块选择,以快的方式选择,如左图 |
y |
复制反白区域 |
d |
删除反白区域 |
多文件编辑
前提:
同时打开多个文件 |
vi file1 file2 |
一般模式下切换文件
:n |
编译下一个文件 |
:N |
编辑上一个文件 |
:files |
列出这个vim目前打开的所有文件 |
多窗口功能
:sp [filename] |
打开新窗口,如果没有filename参数,则两个窗口为同一个文件 |
[ctrl]+w+↑ |
按法:先按[ctrl]和w,然后都松开,再按↑ |
移动到下方的窗口 |
|
[ctrl]+w+↓ |
移动到上方的窗口 |
[ctrl]+w+q |
关闭该窗口 |
vim环境设置与记录
~/.viminfo |
vim会主动将以前的操作记录下来 |
:set all |
查阅目前的所有环境设置值 |
:set |
显示自己变动过得参数 |
:set nu |
显示行号 |
:set nonu |
|
:set hlsearch |
查找的字符串高亮 |
:set nohlsearch |
|
:set autoindent |
自动缩排 |
:set noautoindent |
|
:set backup |
自动保存备份文件.默认不自动保存 |
:set nobackup |
|
:set ruler |
是否显示右下角的状态说明 |
:set noruler |
|
:set showmode |
是否显示左下角状态说明 |
:set backspace=(012) |
是否允许退格删除。 0/1--删除刚输入的字符,无法删除原本存在的文字; 2--可删除任意字符 |
:syntax on |
根据语法显示颜色 |
:syntax off |
|
:set bg=dark |
设置基本色调 |
:set bg=light |
其他vim使用注意事项
中文编码
linux默认支持的语系数据 |
/etc/sysconfig/i18n |
查看当前bash语系编码 |
echo %LANG |
修改语系编码 |
LANG=zh_CN.big5 |
DOS与Linux的断行字符
DOS(Windows)中断行字符为^M$,CR与LF |
Linux下只有$,即只有LF |
dos2UNIX [-kn] file [new file]
-k |
保留文件原本的mtime(文件内容modification)时间 |
-n |
保留旧文件,制定新文件 |
文件语系编码转换
iconv -f 原本编码 -t 新编码 filename [-o newfile] |
||
--list |
列出iconv支持的语系数据 |
|
-f |
原本的编码 |
|
-t |
新编码 |
|
-o |
保留旧文件,制定新文件 |
时间: 2024-10-01 07:16:58