文本编辑器vim
- vim的工作模式
- 进入与退出vim
- vim
vim 是 “vimsual interface IMproved”的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的
vim 不是一个排版程序,它不像MS Word 或 WPS 那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序
vim 是全屏幕文本编辑器,它没有菜单,只有命令
- 文本编辑器的模式
1 1)命令行模式 2 2)输入模式、编辑模式 3 3)末行模式 4 4)替换模式
命令行模式
1 存盘 ZZ 保存退出 2 光标移动: 3 移动光标 h j k l 左 下 上 右 4 光标移到本行开头home 5 移到本行末尾 end 6 光标移到末尾 G 7 光标移到开头gg 8 光标移动一个单词w 9 粘贴复制: 10 复制一行 yy 复制 n行 nyy 11 粘贴 p 12 删除: 13 删除字符 x 向后删除 X 向前删除 14 删除一行 dd ndd 15 删除一个单词 dw 16 撤销: 17 撤销操作 u 向上一步 . 重复上一次操作 18 查找: 19 查找/string define 转义字符 查找“/bin/bash” //bin/bash 20 删除与修改 21 “编辑”是指文字的添加、修改以及删除,甚至包括文字区块的移动、复制等。 22 在vim 中一般认为输入与编辑是两个概念。 23 编辑是在命令模式下进行的,先利用命令移动光标来定位到要进行编辑的地方,然后再使用相应的命令进行编辑;而输入是在插入模式下进行的。 24 在命令模式下常用的编辑命令: 25 x 删除光标所在字符。 26 dd 删除光标所在的行。 27 r 修改光标所在字符,r 后是要修正的字符。 28 R 进入替换状态,输入的文本会覆盖原先的资料。 29 s 删除光标所在字符,并进入输入模式。 30 S 删除光标所在的行,并进入输入模式。 31 cc 修改整行文字。 32 u 撤消上一次操作。 33 . 重复上一次操作。
编辑模式
1 输入模式 2 在输入模式下,屏幕的左下方会出现INSERT 字样。 3 在输入状态下,用户可以输入文本的内容 4 在插入模式下也可以删除字符,而标准的vim 编辑器在编辑状态下不能删除字符,只能插入字符 5 如何从命令行模式进入输入模式 6 a 从光标所在位置后面开始输入资料,光标后的资料随增加的资料向后移动。 7 A 从光标所在行最后面的位置开始输入资料。 8 插入(insert) 9 i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。 10 I 从光标所在行的第一个非空白字符前面开始插入资料。 11 开始(open) 12 o 在光标所在行下新增一行并进入输入模式。 13 O 在光标所在行上方新增一行并进入输入模式。 14 如何退出输入模式 15 esc
末行模式
1 末行模式 2 只要在命令模式下输入命令“:”即可进入末行模式。 3 在末行模式下,可以进行保存文件、退出vim、进行查找和替换等操作。 4 : 5 当同时编辑多个文件时 因为同一时间只能显示一个文件,所以在VI中切换打开的文件可以使用N或n来切换打开的文件 6 :n 切换下一个文件 7 :N 切换上一个文件 8 :q 退出 9 :q! 强制退出不保存 10 :w 11 :wq 12 替换 13 :s/old/new 只替换光标所在行的第一个old string 14 :s/old/new/g 将本行(光标)的所有old string替换为new string g global n代表一个行号 15 :%s/old/new/g 将本文中所有的old string替换为new string 16 :1,2s/old/new/g 替换1到2行中的old string为new string 17 :.,2s/old/new/g .代表光标所在行 当前行到第二行的 18 :2,$s/old/new/g 替换2到最后一行中的old string为new string 19 :set nu 显示行号 20 :set nonu 21 :!command 在vim编辑器中执行一条命令(不许要退出当前的编辑,可以在编辑器中执行命令,类似退出编辑器执行命令) 22 查找 23 /string 将光标定位到string 所在的行。 24 ?string 将光标移动到最近的一个包含 string 字符串的行 25 :n 把光标定位到文件的第n 行。 26 保存文档 27 可以用:n,mw filename 命令将第n 行到第m 行的文字存放的所指定的filename 文件中。
替换模式
1 命令行下按R键进入替换模式 2 退出 3 esc
相关配置文件
~/.viminfo vim历史编辑文档
~/.vimrc vim个性设置文档
自定义文件头注释 ~/.vimrc
1 autocmd BufNewFile *.py,*.sh,*.c exec ":call SetTitle()" 2 func SetTitle() 3 if &filetype == 'python' 4 call setline(1,"#!/usr/bin/env python") 5 call append(line("."),"#enconding=utf-8") 6 call append(line(".")+1, "#Author: Bai Shuming") 7 call append(line(".")+2, "#Created Time: ".strftime("%Y/%m/%d %H:%M")) 8 call append(line(".")+3, "") 9 elseif &filetype == 'sh' 10 call setline(1,"#!/usr/bin/env bash") 11 call append(line("."),"#enconding=utf-8") 12 call append(line(".")+1, "#Author: Bai Shuming") 13 call append(line(".")+2, "#Created Time: ".strftime("%Y/%m/%d %H:%M")) 14 call append(line(".")+3, "") 15 elseif &filetype == 'c' 16 call setline(1,"#include ") 17 call append(line("."), "") 18 endif 19 endfunc