linux备忘录-vi和vim

知识点

vi的三种模式

一般模式

ESC 可回到一般模式

相关按键
j 代表 向下按钮
k 代表 向上按钮
h 代表 向左按钮
l 代表 向右按钮
20j 等代表 向下移动20行
Ctrl + f 代表 Page down
Ctrl + b 代表 Page up
Ctrl + d 代表 向后翻半页
Ctrl + u 代表 向前翻半页
n[space] -> 向右移动n个字符
0或者[home] -> 移动该行的最前的一个字符
$或者[end] -> 移动到该行的最后一个字符
H -> 移动到屏幕最上方第一行的第一个字符
M -> 移动到屏幕中间行第一个字符
L -> 移动到屏幕最下方一行的第一个字符
G -> 移动到档案的最后一行
nG -> 移动到第n行
n[ENTER] -> 光标向下移动n行
/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,取代前显示提示符
x -> 向后删除一个字符,相当于del
X -> 向前删除一个字符,相当于backspace
dd -> 删除游标所在行
ndd -> 连续删除n行
d0和d$ -> 删除光标到该行的最前、或最后的字符
d1G -> 删除光标前面的所有内容
dG -> 删除光标后面的所有内容
yy -> 复制光标所在那一行
yy -> 复制光标向下n行
y1G、yG、y0、y$ -> 类似于d
p -> 下一行开始粘贴
P -> 在上一行粘贴内容
u -> 复原前一个动作
Ctrl + r -> 重做前一个动作
. -> 重复前一个动作

区块选择

v -> 光标经过的字符反白选择
V -> 光标经过的行反白选择
Ctrl + v -> 长方形的方式选择
y -> 复制反白的地方
d -> 删除反白的地方

编辑模式

在一般模式下,按下 i oa等字符进入编辑模式

按不同的字符有不同的效果
i -> 在光标所在处插入
I -> 在该行第一个非空字符插入
o -> 在光标所在下一行插入新行
O -> 在光标所在上一行插入新行
r或R -> 进入取代模式,r取代一次,R一直取代

指令模式

在一般模式下按下 : /?三个中的任何一个按钮,就能进入命令模式

命令

在命令模式下的命令

  1. :wq (存储后退出)
  2. :w (保存)
  3. :q! (强行退出,不保存)
  4. :wq! (强行写入,并退出)
  5. :w filename (另存为filename档案)
  6. :r filename (在光标所在读入filename档案数据)
  7. :n1,n2 w filename (将n1到n2行另存为filename档案)
  8. :! command (执行shell脚本)
  9. :set nu (显示行号)
  10. :set nonu (取消行号)
  11. :n (编辑下一个档案)
  12. :N (编辑上一个档案)
  13. :files (列出vim开启的所有档案)
  14. :sp filename (窗口分割)

Ctrl + w + j -> 移动到下一个窗口
Ctrl + w + k -> 移动到上一个窗口
Ctrl + w + q -> 退出该窗口

  1. :vs (窗口左右切割)
  2. e! 恢复成档案原本的内容

vim 环境设定 ~/.vimrc ~/.viminfo

:set hlsearch (设定高亮搜寻)
:set nohlsearch (取消高亮搜寻)
:set autoindent (设定自动缩排)
:set noautoindent (取消自动缩排)
:set backup (设定自动备份)
:set nobackup (取消自动备份)
:set ruler (显示右下角的状态信息)
:set noruler (取消右下角的状态信息)
:set showmode (显示左下角的状态信息)
:set noshowmode (取消左下角的状态信息)
:set backspace=(012) (设定backspace)
0或1,仅可删除刚输入的字符
2,可以删除任意字符
:set all (显示目前所有的环境参数设定)
:set (显示与系统默认值不同的参数设定)
:syntax on (语法高亮)
:syntax off (取消语法高亮)
:set bg=dark
:set bg=light

配置文件

总的配置文件 /etc/vimrc ,建议修改个人配置文件 ~/.vimrc,例如

~/.vimrc
set hlsearch "高亮搜寻,这是注释"
set nu "显示行号"
set autoindent
set backspace=2
set ruler
set showmode
set bg=dark
syntax on

其他知识

Ctrl + z 将程序丢到背景去执行

vim 编码问题需要考虑

  1. linux系统默认支持的语系,与 /etc/sysconfig/i18n 有关
  2. 终端bash语系,与环境变量 LANG 有关
  3. 档案原本的编码
  4. 开启终端机的软件的编码,如窗口接口

一般需要保证第3点第4点的编码保证一致。

DOS 使用的断行字符 ^M$ CRLF 回车换行
linux 使用的断行字符 LF 换行

DOS 与 linux 间的格式转换

dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]
-k 不修改 mtime
-n 保持旧档,输出到新档
dos2unix -k -n oldfile newfile

档案的编码装换

iconv --list 列出iconv支持的语系
iconv -f 原本编码 -t 新编码 filename [-o newfile]
iconv -f big5 -t utf8 file.big5 -o file.utf8

big5 为 ISO-8859

参考

鸟哥的Linux私房菜 第三版

posted @ 2017-08-14 15:34  smallpi  阅读(234)  评论(0编辑  收藏  举报

页脚