:{range}write>>logfile 将当前内容追加到指定文件中
:{range}write 保存,后面加路径为另存为
:{range}write {command} 将当前文件保存到command中表示把当前文件作为被调用命令的参数 如 :write !wc 返回当前文件的字符数
:w :write的缩写
:edit(e) 打开,编辑
ZZ 保存并退出
zz 将光标所在行移至窗口中间
:q 退出
vim -R file 用只读模式打开file unix中view file等效,通过w!可以强制存盘
vim -M file 用只读模式打开file 通过 :set modifiable :set write 可以去除这种保护
vim -r file 用swp文件恢复当前打开文件,恢复一个还没有命名保存的文件时用 vim -r "" ,其中file可以是被恢复的原文件,也可以是用于恢复的交换文件(VIM会根据交换文件自动找到原文件)
vim -r 列出当前可用的所有交换文件,然后选择用哪个恢复
:recover 用交换文件恢复当前文件
:set shortmess 选择关闭信息提示功能
:saveas move.s 将当前文件另存为move.s
:file move.c 将当前文件重命名为move.c
{command}! 强制符
!{motion}{program} 执行外部程序 输入完!{motion}部分后命令会自动跳转到命令行部分,会通过motion部分的内用调用program然后用返回结果覆盖调motion选择的部分 例如:!5Gsort
!! 在当前行执行程序 相当于 :.!
:jumps 列出跳转记录
:marks 列出所有标签
:reg 查看寄存器内的内容
CTRL-G 显示行数等信息
m 创建标签,用a-z 是局域标签,A-Z是全局标签
v 进入visual模式
V 进入visual模式,以行为对象
CTRL-V 进入visual模式,以矩形为对象
o 在以矩形为单位的visual模式时 光标对角切换
O 在以矩形为单位的visual模式时 光标平角切换
"{a-Z,+,*等} 选择寄存器复制\剪切\粘贴 大写字母表示追加
'" 跳到上次退出此文件时的位置
'. 跳到最后编辑此文件的位置
:TOhtml 把当前文件转化成HTML格式
:source $VIMRUNTIME/syntax/2html.vim 把2html.vim转化成HTML显示在屏幕上
g Ctrl-G 统计字数,可以在visual模式下选择要统计的字符
---------------------------------------------------------------
3.配置与设置
在布尔型参数前加no表示关闭选项
配置项支持-= 和 +=
拷贝默认的配置文件: :!cp -i $VIMRUNTIME/vimrc_example.vim ~/.vimrc
VIM的默认安装路径:/usr/share/vim
VIM的默认配置文件路径: ~/.vim/
VIM的默认插件文件路径: ~/.vim/plugin/
VIM的默认文件类型配置文件路径: ~/.vim/ftplugin/
VIM的默认文档安装路径: ~/.vim/doc
文件类型配置文件多文件的配置方式:
ftplugin/
ftplugin/
ftplugin/
或
mkdir $VIM/vimfiles/ftplugin/fortran
$VIM/vimfiles/ftplugin/fortran/too.vim
高亮字体设置的路径:$VIMRUNTIME/syntax
配色方案的路径:$VIMRUNTIME/colors ~/.vim/colors
生成帮助文件的tags: :helptags ~/.vim/doc
查看本地添加的所有帮助文件: :help local-additions
打开配置文件 :edit $MYVIMRC
查看版本和一些文件配置信息 :version
把所有选项摄制成默认 :set all&
查看所有和默认不一样的设置 :set
打开设置窗口 :options
配置命令:
在所有配置项后面添加&表示设置为默认值
:set showmode 显示当前的模式
:set compatible? 查看当前是否为兼容模式
:set number 显示行号
:set ruler 在屏幕右下角显示光标位置
:set ignorecase 搜索乎略大小写
:set hlsearch 设置搜索结果高亮
:nohlsearch 关闭当前搜索结果的高亮
:set incsearch (incomplete)在输入单词的同时显示搜索结果
:set wrapscan 搜索到文件底部的时候从文件的开头继续搜索反之亦然
:set wrap 是否自动换行
:set whichwrap 设置那些命令可以跨行b是backspace s是Space 具体查看'whichwrap'
:set sidescroll 设置左右自动滚动的触发字符数
:set scrolloff 设置上下自动滚动的触发行数
:set compatible 是否与vi兼容
:set backspace=indent,eol,start 设置在Insert模式下backspace键可以删除 行前的自动缩进,回行,和进入插入模式时光标之前的字符
:set autoindent 自动缩进(在Insert中回车或者在正常模式下o)
:set backup 覆盖一个文件时备份它
:set history 设置命令和搜索的历史记录数量
:set showcmd 在右下角显示按键命令
:set list 制表符高亮
:set listchars=tab:>-,trail:- 设置制表符的替换字符串
:set iskeyword 设置关键字的组成字母@表示a-Z
:set cmdheight 设置命令区高度
:map Q gq 设置映射
:map
:set shiftwidth 设置左右移动的距离
:set joinspaces 设置合行后的空格数
:set textwidth 设置文本的宽度
:set updatetime 设置多长时间没有编辑文件就自动存盘,毫秒为单位
:set updatecount 设置输入多少字符后自动存盘
:set directory 设置查看在哪里存储交换文件
:set autowrite 自动存盘,此存盘是在必要时刻自动存储不像word那样隔几分钟存一次
配置文件中的特殊用法:
autocmd 自动执行命令
autocmd FileType text setlocal textwidth=78 设置 文本文件 文本宽度为78
手动设置文件的高亮配置文件:
在文件开头或者结尾写入 # vim: syntax=make
在VIM中执行shell的时候可以配置shell备置列表如下:
'shell' specifies the program that Vim uses to execute external programs.
'shellcmdflag' argument to pass a command to the shell
'shellquote' quote to be used around the command
'shellxquote' quote to be used around the command and redirection
'shelltype' kind of shell (only for the Amiga)
'shellslash' use forward slashes in the command (only for MS-Windows and alikes)
'shellredir' string used to write the command output into a file
4.搜索
搜索支持正则表达式
/ 向后搜索
? 向前所搜
n 下一个匹配项
N 上一个匹配项
* 从上向下搜索单词
# 从下向上搜索单词
搜索单词: /\
5.常用套路技巧:
套路:
x delete character under the cursor (short for "dl")
X delete character before the cursor (short for "dh")
D delete from cursor to end of line (short for "d$")
dw delete from cursor to next start of word
db delete from cursor to previous start of word
diw delete word under the cursor (excluding white space)
daw delete word under the cursor (including white space)
dG delete until the end of the file
dgg delete until the start of the file
技巧:
'* 是选区寄存器(用鼠标中键) '+ 是粘贴寄存器(一般是菜单里的复制粘贴选项)
Insert模式和Replace模式可以用Insert键切换
将Doe,John 替换成 John Doe 用如下方法:
:%s/\([^,]*\),\(.*\)/\2 \1/ 其中\1 表示正则表达式中第一个匹配部分,整句的匹配部分用 \0表示
反序排列的方法:
首先到要反序的第一行,用mt标注当前位置,然后到要替换的反序的最后一行,输入命令:'t+1,.g/^/m 't 可以用.范围(global默认是%)然后编辑反射这样就可以挑出想要的内容,还可以不确定范围用0代替 't将对整个文件进行反序
挑选文本的方法:
:map
6.配色方案:
命令:
:syntax on 打开语法高亮
:syntax clear 清楚当前的语法高亮
:syntax off 关闭语法高亮
:syntax manual 将高亮模式设置为手动
:set syntax=ON 设置以上选项后,用这个命令开启语法高亮
:filetype on 打开文件类型检测
:set filetype 设置当前文件类型
:plugin on 使用文件类型插件
:indent on 打开文件类型自动缩进
:set background 手动配置背景色(VIM一般会自动推断终端的背景色) 此命令必须放置在 :syntax enable 前 否则不起作用
:syntax reset vim重新设置默认颜色
:runtime syntax/colortest.vim 查看配色方案的实例
:colorscheme 选择配色方案
:colorscheme mine 一直使用自己的配色方案
CTRL-L 重绘VIM的屏幕
配色方案文件中的关键字及作用:
配色方案的路径:$VIMRUNTIME/colors ~/.vim/colors
term attributes in a B&W terminal
cterm attributes in a color terminal
ctermfg foreground color in a color terminal
ctermbg background color in a color terminal
gui attributes in the GUI
guifg foreground color in the GUI
guibg background color in the GUI
可以这样设置:highlight Comment ctermfg=green guifg=green
7.命令记录与回放
q{a-z} 用于开始记录宏,放在寄存器里面的命令可以当成文本粘贴出来,大写字母表示追加
q 结束宏
@{a-z} 执行宏
@@ 用上一次执行宏的寄存器执行宏
8.搜索替换
:[range]substitute/from/to/[flags] 搜索替换的格式 substitute缩写为s,=和+也可以用于分隔符
[range] 默认为当前行
[flags] 默认指替换第一个
g(gloabl) 替换范围内全局
p(print) 显示替换的最后一行
e 告诉VIM未找到匹配时不要报错
c(confirm) 每次替换要求用户确认
y Yes; make this change.
n No; skip this match.
a All; make this change and all remaining ones without further confirmation.
q Quit; don't make any more changes.
l Last; make this change and then quit.
CTRL-E Scroll the text one line up.
CTRL-Y Scroll the text one line down.
9.全局命令
:[range]global/{pattern}/{command} 全局命令的一般形式,其中global可以缩写成g,command必须是:命令,正常模式下的命令可以通过 :normal实现
10.命令范围
任何命令都可以有一个范围
{number} number是行号,指定一行
{number},{number} 指定多行,包含指定的两行,这里的number可以是一个搜索模式, ?abc? 表示向上搜索abc /abc/ 表示向下搜索abc ,当开始行大于结束行的时候它会问你是否交换两个参数,可以在任何number后面添加偏移量,例如: .+1,$-3 或者 ?a?+1,/b/-1等等,还可以在visual模式下选择范围当按下:时会出现 :'<,'> 这时的作用范围即是选区开始的字符到选区结束的字符,要注意的是即使是CTRL-V进入的块选区也是以行为基本单位
. 光标的当前行
1 第一行
$ 最后一行
% 相当于 1,$
'a-z' number还可以用mark表示
`< 上一个选区开始的位置
`> 上一个选区结束的位置
'< 上一个选区开始的行
'> 上一个选区结束的行
5: 就是在:前面加计数器将会在命令栏打开 :.,.+4 可以用任意的计数器
更多嵌入式、Linux学习联系郭老师Q754634522,深圳-广州-郑州-长沙均有学习分点
*.需要注意的:
1. d2e 和 d2w 的区别
2. cw 和 ce 的结果一样,都是c2e的结果
3. ^命令加上计数器没有效果
4. Y和yy 的结果一样,都是yy的结果,如果想用Y的效果只能y$了
5. vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h"
6. autocmd BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
没看懂 05.2* The example vimrc file explained
7. 关于自定义高亮 查看 mysyntaxfile 和 syntax
8. 关于自定义文件类型 查看 new-filetype|
4795442 于 2014-10-09 16:10:24发表:
{:3_118:}
bolaid 于 2014-09-11 08:57:39发表:
有点模糊