当前位置: 首页 > news >正文

seo外链网站大全WordPress产品录入

seo外链网站大全,WordPress产品录入,信誉好的永州网站建设,精通网站建设工资多少钱原文#xff1a;https://blog.csdn.net/qq_15719613/article/details/109648917 文章目录 1.1 vim配置#xff08;.vimrc配置#xff09;1. 让vi命令也可以使用vim的配置2. 打开.vimrc文件3. 进入插入模式4. 配置文件.vimrc内容 1.2 vim操作技巧1.VIM文本替换命令2. 在VIM中…原文https://blog.csdn.net/qq_15719613/article/details/109648917 文章目录 1.1 vim配置.vimrc配置1. 让vi命令也可以使用vim的配置2. 打开.vimrc文件3. 进入插入模式4. 配置文件.vimrc内容 1.2 vim操作技巧1.VIM文本替换命令2. 在VIM中进行文本替换1. 替换当前行中的内容 :s/from/to/ s即substitude2. 替换某一行的内容 :33s/from/to/g3. 替换某些行的内容 :10,20s/from/to/g4. 替换所有行的内容 :%s/from/to/g5. 替换命令的完整形式5.1 s/from/to/5.2 [range]5.3 [flags] 3 Vim介绍1. 关于Vim1.1 Vim的几种模式 2. 启动Vim3. 文档操作4. 光标的移动4.1 基本移动4.2 翻屏4.3 标记 5. 插入文本5.1 基本插入5.2 改写插入 6. 剪切复制和寄存器6.1 剪切和复制、粘贴6.2 文本对象6.3 寄存器 7. 查找与替换7.1 查找7.2 替换7.3 正则表达式 8. 排版8.1 基本排版8.2 拼写检查8.3 统计字数 9. 编辑多个文件9.1 一次编辑多个文件9.2 多标签编辑9.3 缓冲区 10. 分屏编辑10.1 水平分割10.2 垂直分割10.3 关闭子窗口10.4 调整窗口大小10.5 切换和移动窗口 11. 快速编辑11.1 改变大小写11.2 替换normal模式11.3 撤消与重做normal模式11.4 宏 12. 编辑特殊文件12.1 文件加解密12.2 文件的编码12.3 文件格式 13. 编程辅助13.1 一些按键下面的括号匹配对编程很实用的。 13.2 ctags13.3 cscope13.4 gtags13.5 编译13.6 快速修改窗口font colorred13.7 自动补全13.8 多行缩进缩出13.9 折叠 14. 命令行14.1 命令行模式下的快捷键14.2 执行外部命令 15. 其它15.1 工作目录15.2 一些快捷键收集中15.3 在线帮助15.4 一些小功能 4.vim官方教程第一讲第一节∶移动光标第一讲第二节∶VIM的进入和退出第一讲第三节∶文本编辑之删除第一讲第四节∶文本编辑之插入第一讲小结第二讲第一节∶删除类命令第二讲第二节∶其他删除类命令第二讲第三节∶关于命令和对象第二讲第四节∶对象命令的特殊情况 输入 dd 可以删除整一个当前行。第二讲第五节∶撤消类命令第二讲小结第三讲第一节∶置入类命令 输入 p 将最后一次删除的内容置入光标之后第三讲第二节∶替换类命令第三讲第三节∶更改类命令第三讲第四节∶使用c指令的其他更改类命令更改类指令可以使用同删除类命令所使用的对象参数。第三讲小结第四讲第一节∶定位及文件状态第四讲第二节∶搜索类命令输入 / 以及尾随的字符串可以用以在当前文件中查找该字符串。第四讲第三节∶配对括号的查找 按 % 可以查找配对的括号 )、]、}。第四讲第四节∶修正错误的方法之一第四讲小结第五讲第一节∶在 VIM 内执行外部命令的方法第五讲第二节∶关于保存文件的更多信息要将对文件的改动保存到文件中请输入 :w FILENAME 。第五讲第三节∶一个具有选择性的保存命令第五讲第四节∶提取和合并文件 要向当前文件中插入另外的文件的内容请输入 :r FILENAME第五讲小结第六讲第一节∶打开类命令第六讲第二节∶光标后插入类命令输入 a 将可在光标之后插入文本。第六讲第三节∶另外一个置换类命令的版本输入大写的 R 可连续替换多个字符。第六讲第四节∶设置类命令的选项第六讲小结第七讲∶在线帮助命令 **使用在线帮助系统**第八讲∶创建一个启动脚本 1.1 vim配置.vimrc配置 1. 让vi命令也可以使用vim的配置 下载vim略。让vi命令也可以使用vim的配置需要修改 vi /etc/bashrc 增加如下一行内容 alias vivim alias美 [ˈeɪliəs]别名 2. 打开.vimrc文件 在启动vim时当前用户根目录下的.vimrc文件会被自动读取该文件可以包含一些设置甚至脚本.所以一般情况下把.vimrc文件创建在当前用户的根目录下比较方便打开终端或 terminal或管理员命令行输入 以下命令 vi ~/.vimrc 3. 进入插入模式 按回车键打开 vim 的编辑环境按下键盘上的i键进入插入模式窗口下方显示INSERT。 4. 配置文件.vimrc内容 粘贴以下代码如果出现报错先用引号注释掉熟悉后可以自行修改初学者不必纠结 syntax on 自动语法高亮 winpos 5 5 设定窗口位置 set lines40 columns155 设定窗口大小 set nu 显示行号 “set go 不要图形按钮 color asmanian2 设置背景主题 set guifontCourier_New:h10:cANSI 设置字体 syntax on 语法高亮 autocmd InsertLeave * se nocul 用浅色高亮当前行 autocmd InsertEnter * se cul 用浅色高亮当前行 set ruler 显示标尺 set showcmd 输入的命令显示出来看的清楚些 set cmdheight1 命令行在状态行下的高度设置为1 set whichwrap,,h,l 允许backspace和光标键跨越行边界(不建议) set scrolloff3 光标移动到buffer的顶部和底部时保持3行距离 set novisualbell 不要闪烁(不明白) set statusline%F%m%r%h%w\ [FORMAT%{ff}]\ [TYPE%Y]\ [POS%l,%v][%p%%]\ %{strftime(\%d/%m/%y\ -\ %H:%M\)} 状态行显示的内容 set laststatus1 启动显示状态行(1),总是显示状态行(2) set foldenable 允许折叠 set foldmethodmanual 手动折叠 set backgrounddark 背景使用黑色 set nocompatible 去掉讨厌的有关vi一致性模式避免以前版本的一些bug和局限 显示中文帮助 if version 603set helplangcnset encodingutf-8 endif 设置配色方案 colorscheme murphy字体 if (has(gui_running))set guifontBitstream\ Vera\ Sans\ Mono\ 10 endif 新文件标题 新建.c,.h,.sh,.java文件自动插入文件头 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec :call SetTitle() 定义函数SetTitle自动插入文件头 func SetTitle() 如果文件类型为.sh文件 if filetype sh call setline(1,\#########################################################################) call append(line(.), \# File Name: .expand(%)) call append(line(.)1, \# Author: zll) call append(line(.)2, \# mail: zhnlion126.com) call append(line(.)3, \# Created Time: .strftime(%c)) call append(line(.)4, \#########################################################################) call append(line(.)5, \#!/bin/bash) call append(line(.)6, ) else call setline(1, /*************************************************************************) call append(line(.), File Name: .expand(%)) call append(line(.)1, Author: zll) call append(line(.)2, Mail: zhnllion126.com ) call append(line(.)3, Created Time: .strftime(%c)) call append(line(.)4, ************************************************************************/) call append(line(.)5, )endifif filetype cppcall append(line(.)6, #includeiostream)call append(line(.)7, using namespace std;)call append(line(.)8, )endifif filetype ccall append(line(.)6, #includestdio.h)call append(line(.)7, )endif新建文件后自动定位到文件末尾autocmd BufNewFile * normal G endfunc 键盘命令nmap leaderw :w!cr nmap leaderf :findcr 映射全选复制 ctrla map C-A ggVGY map! C-A EscggVGY map F12 ggG 选中状态下 Ctrlc 复制 vmap C-c y去空行 nnoremap F2 :g/^\s*$/dCR 比较文件 nnoremap C-F2 :vert diffsplit 新建标签 map M-F2 :tabnewCR 列出当前目录文件 map F3 :tabnew .CR 打开树状文件目录 map C-F3 \be CC 按F5编译运行 map F5 :call CompileRunGcc()CR func! CompileRunGcc()exec wif filetype cexec !g % -o %exec ! ./%elseif filetype cppexec !g % -o %exec ! ./%elseif filetype java exec !javac % exec !java %elseif filetype sh:!./%endif endfuncC,C的调试 map F8 :call Rungdb()CR func! Rungdb()exec wexec !g % -g -o %exec !gdb ./% endfunc 实用设置设置当文件被改动时自动载入 set autoread quickfix模式 autocmd FileType c,cpp map buffer leaderspace :wcr:makecr代码补全 set completeoptpreview,menu 允许插件 filetype plugin on共享剪贴板 set clipboardunnamed 从不备份 set nobackupmake 运行 :set makeprgg\ -Wall\ \ %自动保存 set autowrite set ruler 打开状态栏标尺 set cursorline 突出显示当前行 set magic 设置魔术 set guioptions-T 隐藏工具栏 set guioptions-m 隐藏菜单栏set statusline\ %%F[%1*%M%*%n%R%H]%\ %y\ %0(%{fileformat}\ %{encoding}\ %c:%l/%L%)\设置在状态行显示的信息 set foldcolumn0 set foldmethodindent set foldlevel3 set foldenable 开始折叠 不要使用vi的键盘模式而是vim自己的 set nocompatible 语法高亮 set syntaxon 去掉输入错误的提示声音 set noeb 在处理未保存或只读文件的时候弹出确认 set confirm 自动缩进 set autoindent set cindent Tab键的宽度 set tabstop4 统一缩进为4 set softtabstop4 set shiftwidth4 不要用空格代替制表符 set noexpandtab 在行和段开始处使用制表符 set smarttab 显示行号 set number 历史记录数 set history1000禁止生成临时文件 set nobackup set noswapfile搜索忽略大小写 set ignorecase搜索逐字符高亮 set hlsearch set incsearch行内替换 set gdefault编码设置 set encutf-8 set fencsutf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936语言设置 set langmenuzh_CN.UTF-8 set helplangcn 我的状态行显示的内容包括文件类型和解码 set statusline%F%m%r%h%w\ [FORMAT%{ff}]\ [TYPE%Y]\ [POS%l,%v][%p%%]\ %{strftime(\%d/%m/%y\ -\ %H:%M\)} set statusline[%F]%y%r%m%*%[Line:%l/%L,Column:%c][%p%%] 总是显示状态行 set laststatus2 命令行在状态行下的高度默认为1这里是2 set cmdheight2 侦测文件类型 filetype on 载入文件类型插件 filetype plugin on 为特定文件类型载入相关缩进文件 filetype indent on 保存全局变量 set viminfo! 带有如下符号的单词不要被换行分割 set iskeyword_,$,,%,#,- 字符间插入的像素行数目 set linespace0 增强模式中的命令行自动完成操作 set wildmenu 使回格键backspace正常处理indent, eol, start等 set backspace2 允许backspace和光标键跨越行边界 set whichwrap,,h,l 可以在buffer的任何地方使用鼠标类似office中在工作区双击鼠标定位 set mousea set selectionexclusive set selectmodemouse,key 通过使用: commands命令告诉我们文件的哪一行被改变过 set report0 在被分割的窗口间显示空白便于阅读 set fillcharsvert:\ ,stl:\ ,stlnc:\ 高亮显示匹配的括号 set showmatch 匹配括号高亮的时间单位是十分之一秒 set matchtime1 光标移动到buffer的顶部和底部时保持3行距离 set scrolloff3 为C程序提供自动缩进 set smartindent 高亮显示普通txt文件需要txt.vim脚本 au BufRead,BufNewFile * setfiletype txt自动补全 :inoremap ( ()ESCi :inoremap ) c-rClosePair())CR :inoremap { {CR}ESCO :inoremap } c-rClosePair(})CR :inoremap [ []ESCi :inoremap ] c-rClosePair(])CR :inoremap ESCi :inoremap ESCifunction! ClosePair(char)if getline(.)[col(.) - 1] a:charreturn \Rightelsereturn a:charendif endfunctionfiletype plugin indent on 打开文件类型检测, 加了这句才可以用智能补全 set completeoptlongest,menuCTags的设定 let Tlist_Sort_Type name 按照名称排序 let Tlist_Use_Right_Window 1 在右侧显示窗口 let Tlist_Compart_Format 1 压缩方式 let Tlist_Exist_OnlyWindow 1 如果只有一个bufferkill窗口也kill掉buffer let Tlist_File_Fold_Auto_Close 0 不要关闭其他文件的tags let Tlist_Enable_Fold_Column 0 不要显示折叠树 autocmd FileType java set tagsD:\tools\java\tags autocmd FileType h,cpp,cc,c set tagsD:\tools\cpp\tags let Tlist_Show_One_File1 不同时显示多个文件的tag只显示当前文件的 设置tags set tagstags set autochdir 其他东东默认打开Taglist let Tlist_Auto_Open1 Tag list (ctags) let Tlist_Ctags_Cmd /usr/bin/ctags let Tlist_Show_One_File 1 不同时显示多个文件的tag只显示当前文件的 let Tlist_Exit_OnlyWindow 1 如果taglist窗口是最后一个窗口则退出vim let Tlist_Use_Right_Window 1 在右侧窗口中显示taglist窗口minibufexpl插件的一般设置 let g:miniBufExplMapWindowNavVim 1 let g:miniBufExplMapWindowNavArrows 1 let g:miniBufExplMapCTabSwitchBufs 1 let g:miniBufExplModSelTarget 11.2 vim操作技巧 1.VIM文本替换命令 s 是替代命令. s/表答式/replacement/ 空白用t替代。如果你的unix中 \t表示tab键则用tab键替代。 g(GLOBAL)的作用从下例可以看出 g – 全部替代 无g – 只替代每行第一个 以下命令将文中所有的字符串idiots替换成managers :1,$s/idiots/manages/g 通常我们会在命令中使用%指代整个文件做为替换范围 :%s/search/replace/g 以下命令指定只在第5至第15行间进行替换: :5,15s/dog/cat/g 以下命令指定只在当前行至文件结尾间进行替换: :.,$s/dog/cat/g 以下命令指定只在后续9行内进行替换: :.,.8s/dog/cat/g 你还可以将特定字符做为替换范围。比如将SQL语句从FROM至分号部分中的所有等号替换为不等号 :/FROM/,/;/s///g 在可视化模式下首先选择替换范围, 然后输入:进入命令模式就可以利用s命令在选中的范围内进行文本替换。 VIM学习笔记 替换(Substitute)可能要Anti-GFW 2. 在VIM中进行文本替换 1. 替换当前行中的内容 :s/from/to/ s即substitude :s/from/to/ 将当前行中的第一个from替换成to。如果当前行含有多个from则只会替换其中的第一个。 :s/from/to/g 将当前行中的所有from都替换成to。 :s/from/to/gc 将当前行中的所有from都替换成to但是每一次替换之前都会询问请求用户确认此操作。 注意这里的from和to都可以是任何字符串其中from还可以是正则表达式。 2. 替换某一行的内容 :33s/from/to/g :.s/from/to/g 在当前行进行替换操作。 :33s/from/to/g 在第33行进行替换操作。 :$s/from/to/g 在最后一行进行替换操作。 3. 替换某些行的内容 :10,20s/from/to/g :10,20s/from/to/g 对第10行到第20行的内容进行替换。 :1,$s/from/to/g 对第一行到最后一行的内容进行替换即全部文本。 :1,.s/from/to/g 对第一行到当前行的内容进行替换。 :.,$s/from/to/g 对当前行到最后一行的内容进行替换。 :a,bs/from/to/g 对标记a和b之间的行含a和b所在的行进行替换。 其中a和b是之前用m命令所做的标记。 4. 替换所有行的内容 :%s/from/to/g :%s/from/to/g 对所有行的内容进行替换。 5. 替换命令的完整形式 :[range]s/from/to/[flags] 5.1 s/from/to/ 把from指定的字符串替换成to指定的字符串from可以是正则表达式。 5.2 [range] 有以下一些表示方法 不写range 默认为光标所在的行。 . 光标所在的行。 1 第一行。 $ 最后一行。 33 第33行。 a 标记a所在的行之前要使用ma做过标记。 .1 当前光标所在行的下面一行。 $-1 倒数第二行。这里说明我们可以对某一行加减某个数值来取得相对的行。 22,33 第2233行。 1,$ 第1行 到 最后一行。 1,. 第1行 到 当前行。 .,$ 当前行 到 最后一行。 a,b 标记a所在的行 到标记b所在的行。 % 所有行与 1,$ 等价。 ?chapter? 从当前位置向上搜索找到的第一个chapter所在的行。其中chapter可以是任何字符串或者正则表达式。 /chapter/ 从当前位置向下搜索找到的第一个chapter所在的行。其中chapter可以是任何字符串或者正则表达式。注意上面的所有用于range的表示方法都可以通过 、- 操作来设置相对偏移量。 5.3 [flags] 这里可用的flags有 无 只对指定范围内的第一个匹配项进行替换。 g 对指定范围内的所有匹配项进行替换。 c 在替换前请求用户确认。 e 忽略执行过程中的错误。 注意上面的所有flags都可以组合起来使用比如 gc 表示对指定范围内的所有匹配项进行替换并且在每一次替换之前都会请用户确认。 3 Vim介绍 1. 关于Vim vim是我最喜欢的编辑器也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi运行一下vimtutor是个聪明的决定。 如果你的系统环境不是中文而你想使用中文的vimtutor就运行vimtutor zh shift zz退出vim 1.1 Vim的几种模式 正常模式可以使用快捷键命令或按:输入命令行。 插入模式可以输入文本在正常模式下按i、a、o等都可以进入插入模式。 可视模式正常模式下按v可以进入可视模式 在可视模式下移动光标可以选择文本。按V进入可视行模式 总是整行整行的选中。ctrlv进入可视块模式。 替换模式正常模式下按R进入。 2. 启动Vim vim -c cmd file: 在打开文件前先执行指定的命令 vim -r file: 恢复上次异常退出的文件 vim -R file: 以只读的方式打开文件但可以强制保存 vim -M file: 以只读的方式打开文件不可以强制保存 vim -y num file: 将编辑窗口的大小设为num行 vim file: 从文件的末尾开始 vim num file: 从第num行开始 vim /string file: 打开file并将光标停留在第一个找到的string上。 vim --remote file: 用已有的vim进程打开指定的文件。 如果你不想启用多个vim会话这个很有用。但要注意 如果你用vim会寻找名叫VIM的服务器如果你已经有一个gvim在运行了 你可以用gvim --remote file在已有的gvim中打开文件。 3. 文档操作 :e file --关闭当前编辑的文件并开启新的文件。 如果对当前文件的修改未保存vi会警告。 :e! file --放弃对当前文件的修改编辑新的文件。 :efile – 开始新的文件并从文件尾开始编辑。 :en file – 开始新的文件并从第n行开始编辑。 :enew --编译一个未命名的新文档。(CTRL-W n) :e – 重新加载当前文档。 :e! – 重新加载当前文档并丢弃已做的改动。 :e#或ctrl^ – 回到刚才编辑的文件很实用。 :f或ctrlg – 显示文档名是否修改和光标位置。 :f filename – 改变编辑的文件名这时再保存相当于另存为。 gf – 打开以光标所在字符串为文件名的文件。 :w – 保存修改。 :n1,n2w filename – 选择性保存从某n1行到另n2行的内容。 :wq – 保存并退出。 ZZ – 保存并退出。 :x – 保存并退出。 :q[uit] ——退出当前窗口。(CTRL-W q或CTRL-W CTRL-Q) :saveas newfilename – 另存为 :browse e – 会打开一个文件浏览器让你选择要编辑的文件。 如果是终端中则会打开netrw的文件浏览窗口 如果是gvim则会打开一个图形界面的浏览窗口。 实际上:browse后可以跟任何编辑文档的命令如sp等。 用browse打开的起始目录可以由browsedir来设置 :set browsedirlast – 用上次访问过的目录默认 :set browsedirbuffer – 用当前文件所在目录 :set browsedircurrent – 用当前工作目录 :Sex – 水平分割一个窗口浏览文件系统 :Vex – 垂直分割一个窗口浏览文件系统 4. 光标的移动 4.1 基本移动 以下移动都是在normal模式下 h或退格: 左移一个字符 l或空格: 右移一个字符 j: 下移一行 k: 上移一行 gj: 移动到一段内的下一行 gk: 移动到一段内的上一行 或Enter: 把光标移至下一行第一个非空白字符。 -: 把光标移至上一行第一个非空白字符。 w: 前移一个单词光标停在下一个单词开头 W: 移动下一个单词开头但忽略一些标点 e: 前移一个单词光标停在下一个单词末尾 E: 移动到下一个单词末尾如果词尾有标点则移动到标点 b: 后移一个单词光标停在上一个单词开头 B: 移动到上一个单词开头忽略一些标点 ge: 后移一个单词光标停在上一个单词末尾 gE: 同 ge 不过‘单词’包含单词相邻的标点。 (: 前移1句。 ): 后移1句。 {: 前移1段。 }: 后移1段。 fc: 把光标移到同一行的下一个c字符处 Fc: 把光标移到同一行的上一个c字符处 tc: 把光标移到同一行的下一个c字符前 Tc: 把光标移到同一行的上一个c字符后 ;: 配合f t使用重复一次 ,: 配合f t使用反向重复一次 上面的操作都可以配合n使用比如在正常模式(下面会讲到)下输入3h 则光标向左移动3个字符。 0: 移动到行首。 g0: 移到光标所在屏幕行行首。 ^: 移动到本行第一个非空白字符。 g^: 同 ^ 但是移动到当前屏幕行第一个非空字符处。 $: 移动到行尾。 g$: 移动光标所在屏幕行行尾。 n|: 把光标移到递n列上。 nG: 到文件第n行。 :ncr 移动到第n行。 :$cr 移动到最后一行。 H: 把光标移到屏幕最顶端一行。 M: 把光标移到屏幕中间一行。 L: 把光标移到屏幕最底端一行。 gg: 到文件头部。 G: 到文件尾部。 4.2 翻屏 ctrlf: 下翻一屏。 ctrlb: 上翻一屏。 ctrld: 下翻半屏。 ctrlu: 上翻半屏。 ctrle: 向下滚动一行。 ctrly: 向上滚动一行。 n%: 到文件n%的位置。 zz: 将当前行移动到屏幕中央。 zt: 将当前行移动到屏幕顶端。 zb: 将当前行移动到屏幕底端。 4.3 标记 使用标记可以快速移动。到达标记后可以用Ctrlo返回原来的位置。 Ctrlo和Ctrli 很像浏览器上的 后退 和 前进 m{a-z}: 标记光标所在位置局部标记只用于当前文件。 m{A-Z}: 标记光标所在位置全局标记。标记之后退出Vim 重新启动标记仍然有效。 {a-z}: 移动到标记位置。 {a-z}: 移动到标记行的行首。 {0-9}回到上[2-10]次关闭vim时最后离开的位置。 : 移动到上次编辑的位置。也可以不过精确到列而精确到行 。如果想跳转到更老的位置可以按C-o跳转到更新的位置用C-i。 : 移动到上次离开的地方。 .: 移动到最后改动的地方。 :marks 显示所有标记。 :delmarks a b – 删除标记a和b。 :delmarks a-c – 删除标记a、b和c。 :delmarks a c-f – 删除标记a、c、d、e、f。 :delmarks! – 删除当前缓冲区的所有标记。 :help mark-motions 查看更多关于mark的知识。 5. 插入文本 5.1 基本插入 i: 在光标前插入一个小技巧按8再按i进入插入模式输入 按esc进入命令模式就会出现8个。 这在插入分割线时非常有用如30i就插入了36个组成的分割线。 I: 在当前行第一个非空字符前插入 gI: 在当前行第一列插入 a: 在光标后插入 A: 在当前行最后插入 o: 在下面新建一行插入 O: 在上面新建一行插入 :r filename在当前位置插入另一个文件的内容。 :[n]r filename在第n行插入另一个文件的内容。 :r !date 在光标处插入当前日期与时间。同理:r !command可以将其它shell命令的输出插入当前文档。 5.2 改写插入 c[n]w: 改写光标后1(n)个词。 c[n]l: 改写光标后n个字母。 c[n]h: 改写光标前n个字母。 [n]cc: 修改当前[n]行。 [n]s: 以输入的文本替代光标之后1(n)个字符相当于c[n]l。 [n]S: 删除指定数目的行并以所输入文本代替之。 注意类似cnw,dnw,ynw的形式同样可以写为ncw,ndw,nyw。 6. 剪切复制和寄存器 6.1 剪切和复制、粘贴 [n]x: 剪切光标右边n个字符相当于d[n]l。 [n]X: 剪切光标左边n个字符相当于d[n]h。 y: 复制在可视模式下选中的文本。 yy or Y: 复制整行文本。 y[n]w: 复制一(n)个词。 y[n]l: 复制光标右边1(n)个字符。 y[n]h: 复制光标左边1(n)个字符。 y$: 从光标当前位置复制到行尾。 y0: 从光标当前位置复制到行首。 :m,nycr 复制m行到n行的内容。 y1G或ygg: 复制光标以上的所有行。 yG: 复制光标以下的所有行。 yaw和yas复制一个词和复制一个句子即使光标不在词首和句首也没关系。 d: 删除剪切在可视模式下选中的文本。 d$ or D: 删除剪切当前位置到行尾的内容。 d[n]w: 删除剪切1(n)个单词 d[n]l: 删除剪切光标右边1(n)个字符。 d[n]h: 删除剪切光标左边1(n)个字符。 d0: 删除剪切当前位置到行首的内容 [n] dd: 删除剪切1(n)行。 :m,nd 剪切m行到n行的内容。 d1G或dgg: 剪切光标以上的所有行。 dG: 剪切光标以下的所有行。 daw和das剪切一个词和剪切一个句子即使光标不在词首和句首也没关系。 d/f cr这是一个比较高级的组合命令它将删除当前位置 到下一个f之间的内容。 p: 在光标之后粘贴。 P: 在光标之前粘贴。 6.2 文本对象 aw一个词 as一句。 ap一段。 ab一块包含在圆括号中的。 y, d, c, v都可以跟文本对象。 6.3 寄存器 a-z都可以用作寄存器名。ayy把当前行的内容放入a寄存器。 A-Z用大写字母索引寄存器可以在寄存器中追加内容。 如Ayy把当前行的内容追加到a寄存器中。 :reg 显示所有寄存器的内容。 “”不加寄存器索引时默认使用的寄存器。 “*当前选择缓冲区”*yy把当前行的内容放入当前选择缓冲区。 “系统剪贴板。”yy把当前行的内容放入系统剪贴板。 7. 查找与替换 7.1 查找 /something: 在后面的文本中查找something。 ?something: 在前面的文本中查找something。 /pattern/number: 将光标停在包含pattern的行后面第number行上。 /pattern/-number: 将光标停在包含pattern的行前面第number行上。 n: 向后查找下一个。 N: 向前查找下一个。 可以用grep或vimgrep查找一个模式都在哪些地方出现过其中:grep是调用外部的grep程序而:vimgrep是vim自己的查找算法。用法为 :vim[grep]/pattern/[g] [j] files。g的含义是如果一个模式在一行中多次出现则这一行也在结果中多次出现。j的含义是grep结束后结果停在第j项默认是停在第一项。vimgrep前面可以加数字限定搜索结果的上限如 :1vim/pattern/ % 只查找那个模式在本文件中的第一个出现。 其实vimgrep在读纯文本电子书时特别有用可以生成导航的目录。比如电子书中每一节的标题形式为n. xxxx。你就可以这样 :vim/^d{1,}./ %然后用:cw或:copen查看结果可以用 C-w H 把quickfix窗口移到左侧就更像个目录了。 7.2 替换 :%s/^/\line(.) - 快速在每一行行首插入序号。 :s/old/new - 用new替换当前行第一个old。 :s/old/new/g - 用new替换当前行所有的old。 :n1,n2s/old/new/g - 用new替换文件n1行到n2行所有的old。 :%s/old/new/g - 用new替换文件中所有的old。 :%s/^/xxx/g - 在每一行的行首插入xxx^表示行首。 :%s/$/xxx/g - 在每一行的行尾插入xxx$表示行尾。 所有替换命令末尾加上c每个替换都将需要用户确认。 如%s/old/new/gc加上i则忽略大小写(ignore)。还有一种比替换更灵活的方式它是匹配到某个模式后执行某种命令语法为 :[range]g/pattern/command。例如 :%g/^ xyz/normal dd。表示对于以一个空格和xyz开头的行执行normal模式下的dd命令。 关于range的规定为 如果不指定range则表示当前行。 m,n: 从m行到n行。 0: 最开始一行可能是这样。 $: 最后一行 .: 当前行 %: 所有行 7.3 正则表达式 高级的查找替换就要用到正则表达式。 \d: 表示十进制数我猜的 \s: 表示空格 \S: 非空字符 \a: 英文字母 |: 表示 或 .: 表示. {m,n}: 表示m到n个字符。这要和 \s与\a等连用如 \a{m,n} 表示m 到n个英文字母。 {m,}: 表示m到无限多个字符。 **: 当前目录下的所有子目录。 :help pattern得到更多帮助。 8. 排版 8.1 基本排版 向左缩进一个shiftwidth 向右缩进一个shiftwidth :ce(nter) 本行文字居中 :le(ft) 本行文字靠左 :ri(ght) 本行文字靠右 gq 对选中的文字重排即对过长的文字进行断行 gqq 重排当前行 gqnq 重排n行 gqap 重排当前段 gqnap 重排n段 gqnj 重排当前行和下面n行 gqQ 重排当前段对文章末尾 J 拼接当前行和下一行 gJ 同 J 不过合并后不留空格。 8.2 拼写检查 :set spell开启拼写检查功能 :set nospell关闭拼写检查功能 ]s移到下一个拼写错误的单词 [s作用与上一命令类似但它是从相反方向进行搜索 z显示一个有关拼写错误单词的列表可从中选择 zg告诉拼写检查器该单词是拼写正确的 zw与上一命令相反告诉拼写检查器该单词是拼写错误的 8.3 统计字数 g ^g可以统计文档字符数行数。 将光标放在最后一个字符上用字符数减去行数可以粗略统计中文文档的字数。 以上对 Mac 或 Unix 的文件格式适用。 如果是 Windows 文件格式即换行符有两个字节字数的统计方法为 字符数 - 行数 * 2。 9. 编辑多个文件 9.1 一次编辑多个文件 我们可以一次打开多个文件如 vi a.txt b.txt c.txt 使用:next(:n)编辑下一个文件。 :2n 编辑下2个文件。 使用:previous或:N编辑上一个文件。 使用:wnext保存当前文件并编辑下一个文件。 使用:wprevious保存当前文件并编辑上一个文件。 使用:args 显示文件列表。 :n filenames或:args filenames 指定新的文件列表。 vi -o filenames 在水平分割的多个窗口中编辑多个文件。 vi -O filenames 在垂直分割的多个窗口中编辑多个文件。 9.2 多标签编辑 vim -p files: 打开多个文件每个文件占用一个标签页。 :tabe, tabnew – 如果加文件名就在新的标签中打开这个文件 否则打开一个空缓冲区。 ^w gf – 在新的标签页里打开光标下路径指定的文件。 :tabn – 切换到下一个标签。Control PageDown也可以。 :tabp – 切换到上一个标签。Control PageUp也可以。 [n] gt – 切换到下一个标签。如果前面加了 n 就切换到第n个标签。第一个标签的序号就是1。 :tab split – 将当前缓冲区的内容在新页签中打开。 :tabc[lose] – 关闭当前的标签页。 :tabo[nly] – 关闭其它的标签页。 :tabs – 列出所有的标签页和它们包含的窗口。 :tabm[ove] [N] – 移动标签页移动到第N个标签页之后。 如 tabm 0 当前标签页就会变成第一个标签页。 9.3 缓冲区 :buffers或:ls或:files 显示缓冲区列表。 ctrl^在最近两个缓冲区间切换。 :bn – 下一个缓冲区。 :bp – 上一个缓冲区。 :bl – 最后一个缓冲区。 :b[n]或:[n]b – 切换到第n个缓冲区。 :nbw(ipeout) – 彻底删除第n个缓冲区。 :nbd(elete) – 删除第n个缓冲区并未真正删除还在unlisted列表中。 :ba[ll] – 把所有的缓冲区在当前页中打开每个缓冲区占一个窗口。 10. 分屏编辑 vim -o file1 file2:水平分割窗口同时打开file1和file2 vim -O file1 file2:垂直分割窗口同时打开file1和file2 10.1 水平分割 :split(:sp) – 把当前窗水平分割成两个窗口。(CTRL-W s 或 CTRL-W CTRL-S) 注意如果在终端下CTRL-S可能会冻结终端请按CTRL-Q继续。 :split filename – 水平分割窗口并在新窗口中显示另一个文件。 :nsplit(:nsp) – 水平分割出一个n行高的窗口。 :[N]new – 水平分割出一个N行高的窗口并编辑一个新文件。 (CTRL-W n或 CTRL-W CTRL-N) ctrlw f --水平分割出一个窗口并在新窗口打开名称为光标所在词的文件 。 C-w C-^ – 水平分割一个窗口打开刚才编辑的文件。 10.2 垂直分割 :vsplit(:vsp) – 把当前窗口分割成水平分布的两个窗口。 (CTRL-W v或CTRL CTRL-V) :[N]vne[w] – 垂直分割出一个新窗口。 :vertical 水平分割的命令 相应的垂直分割。 10.3 关闭子窗口 :qall – 关闭所有窗口退出vim。 :wall – 保存所有修改过的窗口。 :only – 只保留当前窗口关闭其它窗口。(CTRL-W o) :close – 关闭当前窗口CTRL-W c能实现同样的功能。 (象 :q :x同样工作 ) 10.4 调整窗口大小 ctrlw --当前窗口增高一行。也可以用n增高n行。 ctrlw - --当前窗口减小一行。也可以用n减小n行。 ctrlw _ --当前窗口扩展到尽可能的大。也可以用n设定行数。 :resize n – 当前窗口n行高。 ctrlw – 所有窗口同样高度。 n ctrlw _ – 当前窗口的高度设定为n行。 ctrlw --当前窗口减少一列。也可以用n减少n列。 ctrlw --当前窗口增宽一列。也可以用n增宽n列。 ctrlw | --当前窗口尽可能的宽。也可以用n设定列数。 10.5 切换和移动窗口 如果支持鼠标切换和调整子窗口的大小就简单了 ctrlw ctrlw: 切换到下一个窗口。或者是ctrlw w。 ctrlw p: 切换到前一个窗口。 ctrlw h(l,j,k):切换到左右下上的窗口。 ctrlw t(b):切换到最上下面的窗口。BR ctrlw H(L,K,J): 将当前窗口移动到最左右、上、下面。 ctrlw r旋转窗口的位置。 ctrlw T: 将当前的窗口移动到新的标签页上。 11. 快速编辑 11.1 改变大小写 ~: 反转光标所在字符的大小写。 可视模式下的U或u把选中的文本变为大写或小写。 gu(U)接范围如$或G可以把从光标当前位置到指定位置之间字母全部 转换成小写或大写。如ggguG就是把开头到最后一行之间的字母全部变为小 写。再如gu5j把当前行和下面四行全部变成小写。 11.2 替换normal模式 r: 替换光标处的字符同样支持汉字。 R: 进入替换模式按esc回到正常模式。 11.3 撤消与重做normal模式 [n] u: 取消一(n)个改动。 :undo 5 – 撤销5个改变。 :undolist – 你的撤销历史。 ctrl r: 重做最后的改动。 U: 取消当前行中所有的改动。 :earlier 4m – 回到4分钟前 :later 55s – 前进55秒 11.4 宏 . – 重复上一个编辑动作 qa开始录制宏a键盘操作记录 q停止录制 a播放宏a 12. 编辑特殊文件 12.1 文件加解密 vim -x file: 开始编辑一个加密的文件。 :X – 为当前文件设置密码。 :set key – 去除文件的密码。 这里是 滇狐总结的比较高级的vi技巧。 12.2 文件的编码 :e encutf8 filename, 让vim用utf-8的编码打开这个文件。 :w encgbk不管当前文件什么编码把它转存成gbk编码。 :set fenc或:set fileencoding查看当前文件的编码。 在vimrc中添加set fileencodingucs-bom,utf-8,cp936vim会根据要打开的文件选择合适的编码。 注意编码之间不要留空格。 cp936对应于gbk编码。 ucs-bom对应于windows下的文件格式。让vim 正确处理文件格式和文件编码有赖于 ~/.vimrc的正确配置 12.3 文件格式 大致有三种文件格式unix, dos, mac. 三种格式的区别主要在于回车键的编码dos 下是回车加换行unix 下只有 换行符mac 下只有回车符。 :e ffdos filename, 让vim用dos格式打开这个文件。 :w ffmac filename, 以mac格式存储这个文件。 :set ff显示当前文件的格式。 在vimrc中添加set fileformatsunix,dos,mac让vim自动识别文件格式。 13. 编程辅助 13.1 一些按键 gd: 跳转到局部变量的定义处 gD: 跳转到全局变量的定义处从当前文件开头开始搜索 g;: 上一个修改过的地方 g,: 下一个修改过的地方 [[: 跳转到上一个函数块开始需要有单独一行的{。 ]]: 跳转到下一个函数块开始需要有单独一行的{。 []: 跳转到上一个函数块结束需要有单独一行的}。 ][: 跳转到下一个函数块结束需要有单独一行的}。 [{: 跳转到当前块开始处 ]}: 跳转到当前块结束处 [/: 跳转到当前注释块开始处 ]/: 跳转到当前注释块结束处 %: 不仅能移动到匹配的(),{}或[]上而且能在#if#else #endif之间跳跃。 下面的括号匹配对编程很实用的。 ci’, di’, yi’修改、剪切或复制’之间的内容。 ca’, da’, ya’修改、剪切或复制’之间的内容包含’。 ci, di, yi修改、剪切或复制之间的内容。 ca, da, ya修改、剪切或复制之间的内容包含。 ci(, di(, yi(修改、剪切或复制()之间的内容。 ca(, da(, ya(修改、剪切或复制()之间的内容包含()。 ci[, di[, yi[修改、剪切或复制[]之间的内容。 ca[, da[, ya[修改、剪切或复制[]之间的内容包含[]。 ci{, di{, yi{修改、剪切或复制{}之间的内容。 ca{, da{, ya{修改、剪切或复制{}之间的内容包含{}。 ci, di, yi修改、剪切或复制之间的内容。 ca, da, ya修改、剪切或复制之间的内容包含。 13.2 ctags ctags -R: 生成tag文件-R表示也为子目录中的文件生成tags :set tagspath/tags – 告诉ctags使用哪个tag文件 :tag xyz – 跳到xyz的定义处或者将光标放在xyz上按C-]返回用C-t :stag xyz – 用分割的窗口显示xyz的定义或者C-w ] 如果用C-w n ]就会打开一个n行高的窗口 :ptag xyz – 在预览窗口中打开xyz的定义热键是C-w }。 :pclose – 关闭预览窗口。热键是C-w z。 :pedit abc.h – 在预览窗口中编辑abc.h :psearch abc – 搜索当前文件和当前文件include的文件显示包含abc的行。 有时一个tag可能有多个匹配如函数重载一个函数名就会有多个匹配。 这种情况会先跳转到第一个匹配处。 :[n]tnext – 下一[n]个匹配。 :[n]tprev – 上一[n]个匹配。 :tfirst – 第一个匹配 :tlast – 最后一个匹配 :tselect tagname – 打开选择列表 tab键补齐 :tag xyztab – 补齐以xyz开头的tag名继续按tab键会显示其他的。 :tag /xyztab – 会用名字中含有xyz的tag名补全。 13.3 cscope cscope -Rbq: 生成cscope.out文件 :cs add /path/to/cscope.out /your/work/dir :cs find c func – 查找func在哪些地方被调用 :cw – 打开quickfix窗口查看结果 13.4 gtags Gtags综合了ctags和cscope的功能。 使用Gtags之前你需要安装GNU Gtags。 然后在工程目录运行 gtags 。 :Gtags funcname 定位到 funcname 的定义处。 :Gtags -r funcname 查询 funcname被引用的地方。 :Gtags -s symbol 定位 symbol 出现的地方。 :Gtags -g string Goto string 出现的地方。 :Gtags -gi string 忽略大小写。 :Gtags -f filename 显示 filename 中的函数列表。 你可以用 :Gtags -f % 显示当前文件。 :Gtags -P pattern 显示路径中包含特定模式的文件。 如 :Gtags -P .h$ 显示所有头文件 :Gtags -P /vm/ 显示vm目录下的文件。 13.5 编译 vim提供了:make来编译程序默认调用的是make 如果你当前目录下有makefile简单地:make即可。如果你没有make程序你可以通过配置makeprg选项来更改make调用的程序。 如果你只有一个abc.java文件你可以这样设置 set makeprgjavac\ abc.java 然后:make即可。如果程序有错可以通过quickfix窗口查看错误。 不过如果要正确定位错误需要设置好errorformat让vim识别错误信息。 如 :setl efm%A%f:%l:\ %m,%-Z%p^,%-C%.%# %f表示文件名%l表示行号 %m表示错误信息其它的还不能理解。 请参考 :help errorformat。 13.6 快速修改窗口 其实是quickfix插件提供的功能 对编译调试程序非常有用 :copen – 打开快速修改窗口。 :cclose – 关闭快速修改窗口。 快速修改窗口在make程序时非常有用当make之后 :cl – 在快速修改窗口中列出错误。 :cn – 定位到下一个错误。 :cp – 定位到上一个错误。 :cr – 定位到第一个错误。 13.7 自动补全 C-x C-s – 拼写建议。 C-x C-v – 补全vim选项和命令。 C-x C-l – 整行补全。 C-x C-f – 自动补全文件路径。弹出菜单后按C-f循环选择当然也可以按 C-n和C-p。 C-x C-p 和C-x C-n – 用文档中出现过的单词补全当前的词。 直接按C-p和C-n也可以。 C-x C-o – 编程时可以补全关键字和函数名啊。 C-x C-i – 根据头文件内关键字补全。 C-x C-d – 补全宏定义。 C-x C-n – 按缓冲区中出现过的关键字补全。 直接按C-n或C-p即可。 当弹出补全菜单后 C-p 向前切换成员 C-n 向后切换成员 C-e 退出下拉菜单并退回到原来录入的文字 C-y 退出下拉菜单并接受当前选项。 13.8 多行缩进缩出 正常模式下按两下;光标所在行会缩进。如果先按了n再按两下;光标以下的n行会缩进。对应的按两下;光标所在行会缩出。如果在编辑代码文件可以用进行调整。在可视模式下选择要调整的代码块按代码会按书写规则缩排好。或者n 调整n行代码的缩排。 13.9 折叠 zf – 创建折叠的命令可以在一个可视区域上使用该命令 zd – 删除当前行的折叠 zD – 删除当前行的折叠 zfap – 折叠光标所在的段 zo – 打开折叠的文本 zc – 收起折叠 za – 打开/关闭当前折叠 zr – 打开嵌套的折行 zm – 收起嵌套的折行 zR (zO) – 打开所有折行 zM (zC) – 收起所有折行 zj – 跳到下一个折叠处 zk – 跳到上一个折叠处 zi – enable/disable fold; 14. 命令行 normal模式下按:进入命令行模式 14.1 命令行模式下的快捷键 上下方向键上一条或者下一条命令。如果已经输入了部分命令则找上一 条或者下一条匹配的命令。 左右方向键左/右移一个字符。 C-w 向前删除一个单词。 C-h 向前删除一个字符等同于Backspace。 C-u 从当前位置移动到命令行开头。 C-b 移动到命令行开头。 C-e 移动到命令行末尾。 Shift-Left 左移一个单词。 Shift-Right 右移一个单词。 重复上一次的冒号命令。 q 正常模式下q然后按’:打开命令行历史缓冲区 可以像编辑文件一样编辑命令。 q/和q? 可以打开查找历史记录。 14.2 执行外部命令 :! cmd 执行外部命令。 :!! 执行上一次的外部命令。 :sh 调用shell用exit返回vim。 :r !cmd 将命令的返回结果插入文件当前位置。 :m,nw !cmd 将文件的m行到n行之间的内容做为命令输入执行命令。 15. 其它 15.1 工作目录 :pwd 显示vim的工作目录。 :cd path 改变vim的工作目录。 :set autochdir 可以让vim 根据编辑的文件自动切换工作目录。 15.2 一些快捷键收集中 K: 打开光标所在词的manpage。 *: 向下搜索光标所在词。 g*: 同上但部分符合即可。 #: 向上搜索光标所在词。 g#: 同上但部分符合即可。 g C-g: 统计全文或统计部分的字数。 15.3 在线帮助 :h(elp)或F1 打开总的帮助。 :help user-manual 打开用户手册。 命令帮助的格式为第一行指明怎么使用那个命令 然后是缩进的一段解释这个命令的作用然后是进一步的信息。 :helptags somepath 为somepath中的文档生成索引。 :helpgrep 可以搜索整个帮助文档匹配的列表显示在quickfix窗口中。 Ctrl] 跳转到tag主题Ctrlt 跳回。 :ver 显示版本信息。 15.4 一些小功能 简单计算器: 在插入模式下输入C-r 然后输入表达式就能在 光标处得到计算结果 4.vim官方教程 2008年01月01日 版本 1.5 vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅在本教程当中就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令而掌握好这些命令您就能够很容易将vim当作一个通用的万能编辑器来使用了。完成本教程的内容大约需要25-30分钟取决于您训练的时间。每一节的命令操作将会更改本文。推荐您复制本文的一个副本然后在副本上进行训练(如果您是通过vimtutor来启动教程的那么本文就已经是副本了)。 切记一点∶本教程的设计思路是在使用中进行学习的。也就是说您需要通过执行命令来学习它们本身的正确用法。如果您只是阅读而不操作那么您可能会很快遗忘这些命令的好了现在请确定您的Shift-Lock(大小写锁定键)还没有按下然后按键盘上的字母键 j 足够多的次数来移动光标直到第一节的内容能够完全充满屏幕。 第一讲第一节∶移动光标 ※※要移动光标请依照说明分别按下 h、j、k、l 键。※※ ^k 提示∶ h 的键位于左边每次按下就会向左移动。 h l l 的键位于右边每次按下就会向右移动。j j 键看起来很象一支尖端方向朝下的箭头。v 请随意在屏幕内移动光标直至您觉得舒服为止。 按下下行键(j)直到出现光标重复下行。 — 现在您应该已经学会如何移动到下一讲吧。 现在请使用下行键将光标移动到第二讲。 提示∶如果您不敢确定您所按下的字母请按下键回到正常(Normal)模式。 然后再次从键盘输入您想要的命令。 提示∶光标键应当也能正常工作的。但是使用hjkl键在习惯之后您就能够快速 地在屏幕内四处移动光标了。 第一讲第二节∶VIM的进入和退出 !! 特别提示∶敬请阅读完整本一节的内容然后才能执行以下所讲解的命令。 请按ESC键(这是为了确保您处在正常模式)。 然后输入∶ :q!回车 — 这种方式的退出编辑器绝不会保存您进入编辑器以来所做的改动。如果您想保存更改再退出请输入∶ :wq 回车 如果您看到了命令行提示符请输入能够带您回到本教程的命令那就是∶ vimtutor 回车通常情况下您也可以用这种方式∶ vim tutor 回车 — 这里的 ‘vim’ 表示进入vim编辑器而 tutor’则是您准备要编辑的文件。 如果您自信已经牢牢记住了这些步骤的话请从步骤1执行到步骤3退出然后再次进入编辑器。接着将光标移动到第一讲第三节来继续我们的教程讲解。 第一讲第三节∶文本编辑之删除 在正常(Normal)模式下可以按下 x 键来删除光标所在位置的字符。 请将光标移动到本节中下面标记有 — 的那一行。为了修正输入错误请将光标移至准备删除的字符的位置处。然后按下 x 键将错误字符删除掉。重复步骤2到步骤4直到句子修正为止。 — The ccow jumpedd ovverr thhe mooon.好了该行已经修正了下一节内容是第一讲第四节。 特别提示∶在您浏览本教程时不要强行记忆。记住一点∶在使用中学习。 第一讲第四节∶文本编辑之插入 在正常模式下可以按下 i 键来插入文本。 请将光标移动到本节中下面标记有 — 的第一行。 为了使得第一行内容雷同于第二行请将光标移至文本第一个字符准备插入的位置。 然后按下 i 键接着输入必要的文本字符。 所有文本都修正完毕请按下ESC键返回正常模式。重复步骤2至步骤4以便修正句子。 — There is text misng this . — There is some text missing from this line. 如果您对文本插入操作已经很满意请接着阅读下面的小结。 第一讲小结 光标在屏幕文本中的移动既可以用箭头键也可以使用 hjkl 字母键。 h (左移) j (下行) k (上行) l (右移) 欲进入vim编辑器(从命令行提示符)请输入∶vim 文件名 回车 欲退出vim编辑器请输入以下命令放弃所有修改∶ ESC :q! 回车或者输入以下命令保存所有修改∶ ESC :wq 回车 在正常模式下删除光标所在位置的字符请按∶ x 在正常模式下要在光标所在位置开始插入文本请按∶ i 输入必要文本 ESC 特别提示∶按下 ESC 键会带您回到正常模式或者取消一个不期望或者部分完成的命令。 好了第一讲到此结束。下面接下来继续第二讲的内容。 第二讲第一节∶删除类命令 **输入 dw 可以从光标处删除至一个单字/单词的末尾。**请按下 键确保您处于正常模式。 请将光标移动到本节中下面标记有 — 的那一行。 请将光标移至准备要删除的单词的开始。 接着输入 dw 删除掉该单词。 特别提示∶您所输入的 dw 会在您输入的同时出现在屏幕的最后一行。如果您输入有误请按下 键取消然后重新再来。 — There are a some words fun that don’t belong paper in this sentence. 重复步骤3至步骤4直至句子修正完毕。接着继续第二讲第二节内容。 第二讲第二节∶其他删除类命令 输入 d$ 从当前光标删除到行末。 请按下 键确保您处于正常模式。 请将光标移动到本节中下面标记有 — 的那一行。 请将光标移动到该行的尾部(也就是在第一个点号‘.’后面)。 然后输入 d$ 从光标处删至当前行尾部。 — Somebody typed the end of this line twice. end of this line twice. 请继续学习第二讲第三节就知道是怎么回事了。 第二讲第三节∶关于命令和对象 删除命令 d 的格式如下∶ [number] d object 或者 d [number] object 其意如下∶ number - 代表执行命令的次数(可选项缺省设置为 1 )。d - 代表删除。object - 代表命令所要操作的对象(下面有相关介绍)。一个简短的对象列表∶ w - 从当前光标当前位置直到单字/单词末尾包括空格。e - 从当前光标当前位置直到单字/单词末尾但是 *不* 包括空格。$ - 从当前光标当前位置直到当前行末。特别提示∶ 对于勇于探索者请在正常模式下面仅按代表相应对象的键而不使用命令则将看到光标的移动正如上面的对象列表所代表的一样。第二讲第四节∶对象命令的特殊情况 输入 dd 可以删除整一个当前行。 鉴于整行删除的高频度VIM 的设计者决定要简化整行删除仅需要在同一行上击打两次 d 就可以删除掉光标所在的整行了。 请将光标移动到本节中下面的短句段落中的第二行。 输入 dd 删除该行。 然后移动到第四行。 接着输入 2dd (还记得前面讲过的 number-command-object 吗) 删除两行。 1) Roses are red, 2) Mud is fun, 3) Violets are blue, 4) I have a car, 5) Clocks tell time, 6) Sugar is sweet 7) And so are you. 第二讲第五节∶撤消类命令 输入 u 来撤消最后执行的命令输入 U 来修正整行。 请将光标移动到本节中下面标记有 — 的那一行并将其置于第一个错误处。 输入 x 删除第一个不想保留的字母。 然后输入 u 撤消最后执行的(一次)命令。 这次要使用 x 修正本行的所有错误。 现在输入一个大写的 U 恢复到该行的原始状态。 接着多次输入 u 以撤消 U 以及更前的命令。 然后多次输入 CTRL-R (先按下 CTRL 键不放开接着输入 R 键) 这样就可以执行恢复命令也就是撤消掉撤消命令。 — Fiix the errors oon thhis line and reeplace them witth undo. 这些都是非常有用的命令。下面是第二讲的小结了。 第二讲小结 欲从当前光标删除至单字/单词末尾请输入∶dw 欲从当前光标删除至当前行末尾请输入∶d$ 欲删除整行请输入∶dd 在正常模式下一个命令的格式是∶ [number] command object 或者 command [number] object其意是∶ number - 代表的是命令执行的次数 command - 代表要做的事情比如 d 代表删除 object - 代表要操作的对象比如 w 代表单字/单词$ 代表到行末等等。 $ (to the end of line), etc. 欲撤消以前的操作请输入∶u (小写的u)欲撤消在一行中所做的改动请输入∶U (大写的U)欲撤消以前的撤消命令恢复以前的操作结果请输入∶CTRL-R 第三讲第一节∶置入类命令 输入 p 将最后一次删除的内容置入光标之后 请将光标移动到本节中下面示范段落的首行。 输入 dd 将该行删除这样会将该行保存到vim的缓冲区中。 接着将光标移动到准备置入的位置的上方。记住∶是上方哦。 然后在正常模式下(键进入)输入 p 将该行粘贴置入。 重复步骤2至步骤4将所有的行依序放置到正确的位置上。d) Can you learn too?b) Violets are blue,c) Intelligence is learned,a) Roses are red, 第三讲第二节∶替换类命令 输入 r 和一个字符替换光标所在位置的字符。 请将光标移动到本节中下面标记有 — 的第一行。 请移动光标到第一个错误的适当位置。 接着输入 r 这样就能将错误替换掉了。 重复步骤2和步骤3直到第一行已经修改完毕。 — Whan this lime was tuoed in, someone presswd some wrojg keys! — When this line was typed in, someone pressed some wrong keys! 然后我们继续学校第三讲第三节。 特别提示∶切记您要在使用中学习而不是在记忆中学习。 第三讲第三节∶更改类命令 **要改变一个单字/单词的部分或者全部请输入 cw ** 请将光标移动到本节中下面标记有 — 的第一行。 接着把光标放在单词 lubw 的字母 u 的位置那里。 然后输入 cw 就可以修正该单词了(在本例这里是输入 ine 。) 最后按 键然后光标定位到下一个错误第一个准备更改的字母处。 重复步骤3和步骤4直到第一个句子完全雷同第二个句子。 — This lubw has a few wptfd that mrrf changing usf the change command. — This line has a few words that need changing using the change command. 提示∶请注意 cw 命令不仅仅是替换了一个单词也让您进入文本插入状态了。 第三讲第四节∶使用c指令的其他更改类命令更改类指令可以使用同删除类命令所使用的对象参数。 更改类指令的工作方式跟删除类命令是一致的。操作格式是∶ [number] c object 或者 c [number] object 对象参数也是一样的比如 w 代表单字/单词$代表行末等等。 请将光标移动到本节中下面标记有 — 的第一行。 接着将光标移动到第一个错误处。 然后输入 c$ 使得该行剩下的部分更正得同第二行一样。最后按 ESC 键。 — The end of this line needs some help to make it like the second. — The end of this line needs to be corrected using the c$ command. 第三讲小结 要重新置入已经删除的文本内容请输入小写字母 p。该操作可以将已删除的文本内容置于光标之后。如果最后一次删除的是一个整行那么该行将置于当前光标所在行的下一行。 要替换光标所在位置的字符请输入小写的 r 和要替换掉原位置字符的新字符即可。 更改类命令允许您改变指定的对象从当前光标所在位置直到对象的末尾。比如输入 cw 可以替换当前光标到单词的末尾的内容输入 c$ 可以替换当前光标到行末的内容。 更改类命令的格式是∶ [number] c object或者 c [number] object 下面我们继续学习下一讲。 第四讲第一节∶定位及文件状态 输入 CTRL-g 显示当前编辑文件中当前光标所在行位置以及文件状态信息。输入 SHIFT-G 则直接跳转到文件中的某一指定行。 提示∶切记要先通读本节内容之后才可以执行以下步骤!!! 按下 CTRL 键不放开然后按 g 键。然后就会看到页面最底部出现一个状态信息行显示的内容是当前编辑的文件名和文件的总行数。请记住步骤3的行号。 按下 SHIFT-G 键可以使得当前光标直接跳转到文件最后一行。 输入您曾停留的行号然后按下 SHIFT-G。这样就可以返回到您第一次按下CTRL-g 时所在的行好了。注意∶输入行号时行号是不会在屏幕上显示出来的。 如果愿意您可以继续执行步骤1至步骤三。 第四讲第二节∶搜索类命令输入 / 以及尾随的字符串可以用以在当前文件中查找该字符串。 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底部这跟 : 命令是一样的。 接着输入 errroor 回车。那个errroor就是您要查找的字符串。 要查找同上一次的字符串只需要按 n 键。要向相反方向查找同上一次的字符串请输入 Shift-N 即可。 如果您想逆向查找字符串请使用 ? 代替 / 进行。 — When the search reaches the end of the file it will continue at the start. “errroor” is not the way to spell error; errroor is an error. 提示∶如果查找已经到达文件末尾查找会自动从文件头部继续查找。 第四讲第三节∶配对括号的查找 按 % 可以查找配对的括号 )、]、}。 把光标放在本节下面标记有 -- 那一行中的任何一个 (、[ 或 { 处。 接着按 % 字符。 此时光标的位置应当是在配对的括号处。 再次按 % 就可以跳回配对的第一个括号处。 — This ( is a test line with (s, [s ] and {s } in it. )) 提示∶在程序调试时这个功能用来查找不配对的括号是很有用的。 第四讲第四节∶修正错误的方法之一 输入 :s/old/new/g 可以替换 old 为 new。 请将光标移动到本节中下面标记有 — 的那一行。 输入 :s/thee/the 回车 。请注意该命令只改变光标所在行的第一个匹配串。 输入 :s/thee/the/g 则是替换全行的匹配串。 — the best time to see thee flowers is in thee spring. 要替换两行之间出现的每个匹配串请输入 :#,#s/old/new/g (#,#代表的是两行的行号)。输入 :%s/old/new/g 则是替换整个文件中的每个匹配串。 第四讲小结 Ctrl-g 用于显示当前光标所在位置和文件状态信息。Shift-G 用于将光标跳转至文件最后一行。先敲入一个行号然后按 Shift-G 则是将光标移动至该行号代表的行。 输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字符串。完成一次查找之后按 n 键则是重复上一次的命令可在同一方向上查找下一个字符串所在或者按 Shift-N 向相反方向查找下该字符串所在。 如果光标当前位置是括号(、)、[、]、{、}按 % 可以将光标移动到配对的括号上。 在一行内替换头一个字符串 old 为新的字符串 new请输入 :s/old/new在一行内替换所有的字符串 old 为新的字符串 new请输入 :s/old/new/g在两行内替换所有的字符串 old 为新的字符串 new请输入 :#,#s/old/new /g在文件内替换所有的字符串 old 为新的字符串 new请输入 :%s/old/new/g进行全文替换时询问用户确认每个替换需添加 c 选项请输入 :%s/old/new/gc 第五讲第一节∶在 VIM 内执行外部命令的方法 输入 :! 然后紧随著输入一个外部命令可以执行该外部命令。 按下我们所熟悉的 : 命令设置光标到屏幕底部。这样就可以让您输入命令了。 接着输入感叹号 ! 这个字符这样就允许您执行外部的 shell 命令了。 我们以 ls 命令为例。输入 !ls 回车 。该命令就会列举出您当前目录的内容就如同您在命令行提示符下输入 ls 命令的结果一样。如果 !ls 没起作用您可以试试 :!dir 看看。 — 提示∶ 所有的外部命令都可以以这种方式执行。 — 提示∶ 所有的 : 命令都必须以 回车 告终。 第五讲第二节∶关于保存文件的更多信息要将对文件的改动保存到文件中请输入 :w FILENAME 。 输入 :!dir 或者 :!ls 获知当前目录的内容。您应当已知道最后还得敲回车 吧。 选择一个尚未存在文件名比如 TEST 。 接着输入 :w TEST (此处 TEST 是您所选择的文件名。) 该命令会以 TEST 为文件名保存整个文件 (VIM 教程)。为了确保正确保存请再次输入 :!dir 查看您的目录列表内容。 — 请注意∶如果您退出 VIM 然后在以文件名 TEST 为参数进入那么该文件内容应该同您保存时的文件内容是完全一样的。 现在您可以通过输入 :!rm TEST 来删除 TEST 文件了。 第五讲第三节∶一个具有选择性的保存命令 **要保存文件的部分内容请输入 :#,# w FILENAME ** 再来执行一次 :!dir 或者 :!ls 获知当前目录的内容然后选择一个合适的不重名的文件名比如 TEST 。 接着将光标移动至本页的最顶端然后按 CTRL-g 找到该行的行号。别忘了行号哦。 接着把光标移动至本页的最底端再按一次 CTRL-g 。也别忘了这个行好哦。 为了只保存文章的某个部分请输入 :#,# w TEST 。这里的 #,# 就是上面要求您记住的行号(顶端行号,底端行号)而 TEST 就是选定的文件名。 最后用 :!dir 确认文件是否正确保存。但是这次先别删除掉。 第五讲第四节∶提取和合并文件 要向当前文件中插入另外的文件的内容请输入 :r FILENAME 请键入 :!dir 确认您前面创建的 TEST 文件还在。 然后将光标移动至当前页面的顶端。 特别提示∶ 执行步骤3之后您将看到第五讲第三节请届时再往下移动回到这里来。 接着通过 :r TEST 将前面创建的名为 TEST 的文件提取进来。 特别提示∶您所提取进来的文件将从光标所在位置处开始置入。 为了确认文件已经提取成功移动光标回到原来的位置就可以注意有两份第五讲第三节一份是原本另外一份是来自文件的副本。 第五讲小结 :!command 用于执行一个外部命令 command。请看一些实际例子∶ :!dir - 用于显示当前目录的内容。 :!rm FILENAME - 用于删除名为 FILENAME 的文件。 :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。 :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件FILENAME 中。 :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面。 第六讲第一节∶打开类命令 输入 o 将在光标的下方打开新的一行并进入插入模式。 请将光标移动到本节中下面标记有 — 的那一行。 接着输入小写的 o 在光标 下方 打开新的一行并进入插入模式。 然后复制标记有 — 的行并按 键退出插入模式而进入正常模式。 — After typing o the cursor is placed on the open line in Insert mode. 为了在光标 上方 打开新的一行只需要输入大写的 O 而不是小写的 o就可以了。请在下行测试一下吧。当光标处在在该行上时按 Shift-O可以在该行上方新开一行。 Open up a line above this by typing Shift-O while the cursor is on this line. 第六讲第二节∶光标后插入类命令输入 a 将可在光标之后插入文本。 请在正常模式下通过输入 $ 将光标移动到本节中下面标记有 — 的第一行的末尾。 接着输入小写的 a 则可在光标之后插入文本了。大写的 A 则可以直接在行末插入文本。 提示∶输入大写 A 的操作方法可以在行末插入文本避免了输入 i光标定位到最后一个字符输入的文本 回复正常模式箭头右键移动光标以及 x 删除当前光标所在位置字符等等诸多繁杂的操作。 操作之后第一行就可以补充完整了。请注意光标后插入文本与插入模式是基本完全一致的只是文本插入的位置定位稍有不同罢了。 — This line will allow you to practice — This line will allow you to practice appending text to the end of a line. 第六讲第三节∶另外一个置换类命令的版本输入大写的 R 可连续替换多个字符。 请将光标移动到本节中下面标记有 — 的第一行。 移动光标到第一行中不同于标有 — 的第二行的第一个单词的开始即单词 last 处。 然后输入大写的 R 开始把第一行中的不同于第二行的剩余字符逐一输入就可以全部替换掉原有的字符而使得第一行完全雷同第二行了。 — To make the first line the same as the last on this page use the keys. — To make the first line the same as the second, type R and the new text. 请注意∶如果您按 退出置换模式回复正常模式尚未替换的文本将仍然保持原状。 第六讲第四节∶设置类命令的选项 **设置可使查找或者替换可忽略大小写的选项 ** 要查找单词 ignore 可在正常模式下输入 /ignore 。要重复查找该词可以重复按 n 键。 然后设置 ic 选项(ic就是英文忽略大小写Ignore Case的首字母缩写词)即输入∶ :set ic 现在可以通过键入 n 键再次查找单词 ignore。重复查找可以重复键入 n 键。 然后设置 hlsearch 和 incsearch 这两个选项输入以下内容∶:set hls is 现在可以再次输入查找命令看看会有什么效果∶/ignore 第六讲小结 输入小写的 o 可以在光标下方打开新的一行并将光标置于新开的行首进入插入模式。输入大写的 O 可以在光标上方打开新的一行并将光标置于新开的行首进入插入模式。 输入小写的 a 可以在光标所在位置之后插入文本。输入大写的 A 可以在光标所在行的行末之后插入文本。 输入大写的 R 将进入替换模式直至按 键退出替换模式而进入正常模式。 输入 :set xxx 可以设置 xxx 选项。 第七讲∶在线帮助命令 使用在线帮助系统 Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统请选择如下三种方 法之一∶ 按下 键 (如果键盘上有的话) 按下 键 (如果键盘上有的话) 输入 :help 回车 输入 :q 回车 可以关闭帮助窗口。 提供一个正确的参数给:help命令您可以找到关于该主题的帮助。请试验以下参数(可别忘了按回车键哦。:)∶ :help w 回车 :help c_T 回车 :help insert-index 回车 :help user-manual 回车 第八讲∶创建一个启动脚本 启用vim的功能 Vim的功能特性要比vi多得多但大部分功能都没有缺省激活。为了启动更多的功能您得创建一个vimrc文件。 开始编辑vimrc文件这取决于您所使用的操作系统∶:edit ~/.vimrc 这是Unix系统所使用的命令:edit $VIM/_vimrc 这是Windows系统所使用的命令 接着导入vimrc范例文件∶:read $VIMRUNTIME/vimrc_example.vim 保存文件命令为∶:write 在下次您启动vim的时候编辑器就会有了语法高亮的功能。您可以继续把您喜欢的其它功能设置添加到这个vimrc文件中。 vim 教程到此结束。本教程只是为了简明地介绍一下vim编辑器但已足以让您很容易学会使用本编辑器了。毋庸质疑vim还有很多很多的命令本教程所介绍的还差得远著呢。所以您要精通的话还望继续努力哦。下一步您可以阅读vim手册使用的命令是∶ :help user-manual
http://www.dnsts.com.cn/news/253010.html

相关文章:

  • 如何提高网站的收录朝阳区北京网站建设
  • 专业小程序制作开发平台seo顾问服务咨询
  • 网站怎么加关键词c2c的网站名称和网址
  • 站长百度wordpress 自动加载下一页
  • 中英文双语网站怎么做肥西县建设局网站
  • 图书网页设计网站网站建设与管理题目
  • 网站建设软件是什么企业网站管理系统|cms系统|手机网站建设|企业建站|cms建站系统
  • WordPress访问mysql慢昆明做网站优化公司
  • 石家庄网站建设成功案例百度推广
  • 单品电商网站建设wordpress插件合集
  • 网站开发 名片wordpress 数据库备份插件下载
  • 网站设计规划建设的目的东莞微信公众号小程序
  • 网站建设选天祥wordpress批量获取七牛外链
  • 南山网站设计哈尔滨免费自助建站模板
  • wordpress怎么使用七牛上海seo优化公司 kinglink
  • 大连承接网站制作计算机应用技术网站开发
  • 广东微信网站制作公司wordpress耗时
  • 网站建设经费预算表最新wordpress知更鸟
  • 做网赌网站怎么推广拉人做一家开发网站的公司
  • 贵阳市公共住宅投资建设集团官方网站自学网站建设要多久
  • 网站建设是做什么的建设网站群的指导思想
  • 石家庄信息门户网站定制个体户做网站去哪里做
  • 如何做弹幕网站定制网站
  • 集约化网站建设情况广告设计专业简历
  • html5 wap网站模板动画一个thinkphp搭建的微网站
  • wordpress自建站上可以买卖世界球队实力排名
  • 网站跳转代码 html杨浦网站建设哪家好
  • 国税网站模板设计院项目管理系统
  • 网站建设预付款如何付电商网站开发的引言
  • 0基础做下载网站制作外贸网站开发