第一章:安装:

在命令行运行vim,如果找不到程序,需要自己安装。

1.1 下载

从官方网站ftp://ftp.vim.org/pub/vim/unix/中选择一个版本下载,我这里使用的是vim-7.3.tar.bz2。

1.2 解压程序:

tar -xjvf vim-7.3.tar.bz2

在AIX环境中可能不支持这个命令。可以用Windows上的好压等软件解压后再传入到服务器中,这时一些程序的可执行权限可能被清除了。你需要手动添权限:

cd vim73 #进入解压后的源代码目录。
vim73>chmod –R u+x .

1.3 编译安装程序:

如果在AIX环境可以使用xlC编译器,编译前需设置环境变量如下

vim73>export CC=xlC
vim73> export CFLAGS="-q64 -DOLDXAW" #64位处理器必须加上-q64选项,-DOLDXAW为了更好的兼容性
vim73>export LDFLAGS=-q64 #64位处理器必须加上此选项
vim73>export STRIP="strip -X64" #64位处理器必须加上此选项

如果是Linux环境可以不用设置上面的环境变量。

配置编译选项:

vim73>./configure --prefix=/home/aixdev/vim/ --enable-multibyte --disable-nls

其中/home/aixdev/vim/是要安装的目录,用户自己修改,务必保证此目录又读写权限。--enable-multibye的用途是使用
Vim的encoding,fileecncodings等设置。--disable-nls是Oracle的语言环境,可以不选用。

编译:

vim73>make

安装:

vim73>make install

1.4 安装ctags

如果你在AIX平台上使用Vim,系统默认的ctags功能很差,建议重新安装一个ctags工具,Linux平台用户可以跳过此节。ctags下载地址:http://ctags.sourceforge.net/,我这里使用的版本是:ctags-5.8.tar.gz
安装步骤类似vim:

ctags-5.8>chmod -R u+x . #解决windows解压后可执行权限丢失的问题。
由于编译vim的时候已经设置好了环境变量,这里可以不用设置了
ctags-5.8>./configure --prefix=/home/aixdev/ctags/
ctags-5.8>make
ctags-5.8>make install

没有报错的话,在/home/aixdev/ctags/bin目录下会有ctags可执行文件。

第二章:配置

2.1 检查DISPLAY环境变量

在执行VIM前,检查DISPLAY环境变量的值,(如果你的DISPLAY变量值为空,可以跳过此步)。
当我打开VIM时,发现没响应,像是卡住了。但执行命令kill -30 <VIM的进程序号>后,它又立即激活。这是环境变量DISPLAY在作怪。
由于服务器还安装了ORACLE,而ORACLE的一些终端登录要用到DISPLAY变量,为了不影响其他同事使用ORACLE,可以在$PATH环境变量中找一个可以写的目录,并在这个目录中新建一个名为vim的SHELL脚本,内容如下:

#! /bin/sh
export DISPLAY=;
<安装路径>/bin/vim "$@"
exit;

把这个shell脚本的使用仅限更改为可执行:

chmod +x vim。

2.2 更新配置文件

为了使Vim能够发挥更好的使用优势,在安装完成后,建议将如下的.vimrc文件复制到HOME目录下,覆盖原来的文件。
点击下载.vimrc

2.3 神级配置

将下面的这一段代码放在home下面保存为.vimrc

set mouse=a
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
map <F4> :TlistToggle<CR>
noremap <F6> :make<CR>
noremap <S-F6> :make clean;make<CR>
noremap <F7> :Tlist<CR>
noremap <S-F7> :TlistSync<CR>
noremap <F3> :!./vitags.sh<CR>:cs reset<CR>
noremap <S-F3> :!cvs up<CR>
nnoremap <space> @=((foldclosed(line('.')) < 0) 'zc' : 'zo')<CR> if has("multi_byte")
set encoding=utf-8
set fileencoding=chinese
set fileencodings=ucs-bom,utf-8,chinese
endif
set wrap
set hlsearch
filetype plugin on colorscheme elflord
syntax on set nocp
filetype plugin on
filetype indent on if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb
set cscopetag
endif set nu
set ts=4
set sw=4 set ru
set hls
set is
set sm
set cin
set cino=:0g0t0(sus set autoread " read open files again when changed outside Vim
set incsearch " use incremental search
set nowrap " do not wrap lines
set nobackup
set nowritebackup
map <C-F12> :!ctags -R --c-kinds=+p --fields=+iaS --extra=+q .<CR>
map <C-F11> :!ctags -R .<CR>

第三章:常用技巧。

3.1 基本功能

Vim配置完成后,在任何目录输入命令“vim <文件名>”就可以使用vim编辑文件了。 打开vim后,默认的是命令模式,输入i进入编辑模式,这个时候你可以编辑文件了。
在编辑模式下按Esc键回到命令模式,在命令模式输入:q ! (:wq) 命令就可以(保存修改)退出了。

命令模式常用命令:
k:向上
j:向下
h:向左
l:向右
w:下一个单词
b:上一个单词
e:单词尾部
a:追加输入,并进入编辑模式,一般
r:替换当前字符为
R:进入替换型输入方式,按Esc退出。
cw:替换单词,进入编辑模式。
x:剪切字符
dd:剪切行
D:剪切当前位置到行尾
yy:复制一行
p:粘贴
v:选择文本区域,之后可以移动光标改变选择范围,也可以使用y、x、r命令复制、删除
3.2 列模式


在命令模式下,按ctrl+v命令进入列选择模式,列选择模式同v命令的选择模式一样,同时它还可以输入I命令对选择的区域每行都插入一样的内容。

3.3 查找
命令模式下的查找命令:
/<word>:查找下一个<word>,之后可以使用n(N)命令向下(上)查找
?<word>:查找上一个<word>,之后可以使用n(N)命令向下(上)查找
*:查找光标所在单词下一处
<word>可以是任何正则表达式,用点(.)匹配任意单个字符,用星*表示匹配零或多个任意字符。如(/a*b)可以查找匹配ab、aab
下面是介绍几个常用的情况:
/^abc:找到以abc开头的行
/efg$:查找已efg结尾的行
/\s\+:查找一个或多个空白处,

vim的替换语法为:[addr]s/源字符串/目的字符串/[option]。[addr] 表示检索范围,默认是当前行,%表示整个文件,使用 v命令选中区域后输入冒号可以实现自定义范围;源字符串可以使用通配符,查找功能原理一样;[option]是操作类型,g 表示全局替换,c 表示进行确认。
下面是一些常用的例子:
在每行的开始插入>
:%s/^/>/g
删除空行。
:%s/^$/ /g
删除所有的[
:%s/\[//g
将That or this 换成 This or that
:%s/\(That\) or \(this\)/\u\2 or \l\1/

提示:输入/或者:命令然后再按上下方向键,可以查看历史命令

3.4 多文件操作

在使用vim命令时,后面可以加多个文件名。这时vim首先显示的是第一个文件。在命令模式下输入:n(N)命令可以切换到下(上)一个文件,使用ctrl+g可以查看当前打开的文件名,输入:qa退出所有的文件。
如果想在一个页面上看到多个文件内容,可以使用分屏,这样很方便让我们交互式操作。

在vim命令模式下输入:sp(:vsp) [文件名],可以进行水平(垂直)分屏。之后输入wk(j、h、l)命令可以上(下、左、右)切换窗口。输入:q可以关闭窗口。

3.5 资源管理器

如果我们打开的文件被其他程序修改了,可以使用:e命令来刷新文件内容。使用:e [文件名]可以关闭当前文件同时打开指定的文件。 使用:E命令可以打开当前文件所在目录。这个类似Windows的资源管理器。

当打开的是文件目录时,可以通过s命令修改文件排序方式,同时将光标移到指定文件后输入Enter键即可打开它。

对于开发者来说,希望可以看到一个程序的函数名列表,这是需要通过taglist插件来实现。
使用方法如下:
1) 先到官方网站下载插件:
http://www.vim.org/scripts/script.php?script_id=273
2) 将下载的文件解压到$HOME/.vim目录下。

$HOME/.vim> unzip taglist_46.zip

3)设置并激活
在.vimrc文件修改下面配置:

let TlistCtagsCmd="/lincapp/aixdev/ctags/bin/ctags"

其中/lincapp/aixdev/ctags是第一步ctags安装时指定的路径。
进入HOME/.vim目录运行vim,执行命令(:helptags .)后退出。

此时就配置好了,打开一个程序文件,按F2命令,即可显示、隐藏函数定义表了。


3.6 代码折叠

在查看源代码时,将光标移至括号(大、中、小括号
3.7 函数定义跳转


我们阅读代码时希望能跳转到被调函数的定义处。实现这个功能需要使用第一步安装ctags工具对代码库生成tags文件,方法如下:

/home/aixdev/ctags/bin/ctags -RB -f ~/leman/tags ~/rinetd/

-f用来指定生成的tags文件名,用户可以任何自行修改。最后一个参数指定代码库的主目录(为了能在任何地方都可以跳转,这里建议写绝对路径)。
生成完tags文件后需要修改.vimrc中的tags设置:

:set tags=~/leman/tags "这里修改为你自己的tags文件名

现在就可以在vim里面使用跳转了,将光标移至函数处,输入ctrl+]命令进入函数定义,输入ctrl+t退到上一层调用。如果修改代码后导致跳转位置不准了,可以通过重建tags文件来校正。

3.8 代码自动补全

在编辑模式下,当我们输入变量名或者函数名一部分时,可以输入ctrl+p(n)实现自动补全,vim自动搜索上(下)文类似的单词,如果未找到再尝试到
tags文件中找你想要的变量。如果有多个满足的内容,会显示一个列表,这时用户可以继续输入ctrl+p(n)来选择上(下)一个。

3.9 文件比较

使用vim比较文件的命令为vim -od 。参数-o表示水平分屏,默认是垂直分屏。

如上题,品红色表示本行有差异,红色部分标识了差异的地方。为了能看到全行的内容,可以输入:set wrap命令来展开,同样使用:set nowrap可以隐藏。

3.10 其他

1)调用外部命令。 如果想使用vim调用shell命令,可以在命令模式下输入:! <shell命令>实现。如查看当前所在目录可使用::!pwd

2)二进制模式查看编辑。 如果vim打开的文件中含有不可见字符,而你又想查看这些不可见字符的二进制数据,这是可以通过:%!xxd -g1命令进入二进制模式查看,进入后可以编辑二进制数据,之后通过:%!xxd -g1 -r命令返回正常模式保存。

第四章:高级用法。

4.1 Linux命令模式:Vim filename

一次移动一个光标

h        j              k          l

左       下             上         右

行内移动

0        到行首         d0或d^    删除至行首

$        至行尾         d$         删除至行尾

0=HOME    到行首        $=end      至行尾

G         到文件尾      50G        到50行

gg        到文件首

有小d/大D都是剪切

dd         剪掉当前行

5dd        剪掉当前行起共5行

D          剪空当前行

x          删除一个字母    

dw         除一个单词          del  word

u         一次撤一行中的一个动作

U         撤消一行中的所有动作    undo

多行时小u比大U管用

yy        复制当前行

5yy       复制5行

p         粘    paste

ZZ        保存退出

ZQ        不保存退出

vim中大小写转化:~或u或U

1、整篇文章大写转化为小写:gg到文件首→guG

gu=把选定范围全部小写

G=到文件结束

2、整篇文章小写转化为大写:gg到文件首→gUG

gU=把选定范围全部大写

G=到文件结束

4.2 命令模式→输入模式:按ins/a/A/i/I/o/O/r/R

o           在光标下加一空行并进入插入模式

O           在光标上开一空行并进入插入模式

r           替换一个字符

R           连续替换多个字符

文件内容查找:

操作键      功能

/word       从上而下在文件中查找字符串“word”

?word       从下而上在文件中查找字符串“word”

n            定位下一个匹配的被查找字符串

N            定位上一个匹配的被查找字符串

命令模式→Visual Block:按ctrl+v,举例:选中多行并添加注释

#vim→^v→I→#→ESC

#vim→set nu→^v→(100G:当前行到第100行)→I→#→ESC

4.3 命令模式→末行模式:按冒号

默认情况下Vim的搜索是大小写敏感的,:

:set ignorecase          忽略大小写

:set noignorecase        不忽略大小写

:set nu或:set number     设置显示行号

:set nonu或:set nonumber 不显示行号

:999              移动光标到第999行

有彩色或无彩色

:syntax clear或:set syntax=off暂时关闭语法高亮

:syntax enable    当前缓冲区打开语法高亮功能。

:w                存盘不退出

:w!               暴力存盘不退出

:w file1          另存为file1

 

:q                无脏数据时正常退出

:q!               放弃脏数据并退出

 

:wq               正常保存并退出

:wq!              暴力存盘并退出

文件内容替换

命令  功能

:s /old/new     当前行中找到的第一个old 替换为new

:s /old/new/g     当前行中查找到的所有old 替换为new

:#,# s/old/new/g    行号“#,#”范围内替换所有的old为new

:% s/old/new/g  整个文件范围内替换所有的old为new

:s /old/new/c    c命令:将对每个替换动作提示用户进行确认

文件加密与解密

vim t.c         打开一文件

:X             据提示操作//加密

:wq             保存退出

 

文件解密

vim t.c         打开文件

:set key=      解密

:wq            保存退出

查看vim帮助

4.4 典型故障现象

一般是非正常关闭VI导致的,解决办法如下:

#rm .install.log

结尾:

下面是一个高手总结VIM的用法:

vim/vi用法总结的更多相关文章

  1. 文本编辑器vim/vi用法完全解读

    vi用法 1.启动vim 2.命令模式和输入模式 3.退出vi 4.vi与ex命令 5.移动光标 6.跳转 7.搜索 8.插入文本 9.修改文本 10.替换文本 11.删除文本 12.恢复和撤销改变 ...

  2. Linux之浅谈VIM常见用法及原理图

    本次归纳以强大的VIM文本处理工具常见用法去展开论述. 文本编辑种类:       行编辑器:sed       全屏编辑器:nano,vi        vim - Vi改进 其他编辑器:     ...

  3. 文本编辑器VIM/VI

    vim/vi  功能强大全屏文本编辑器.主要是建立,编辑,显示文本. www.vim.org  构建shell脚本 :set number 使文件出现行号 a 光标后附件文件     i在光标前插入文 ...

  4. (四)文本编辑器Vim/Vi

    目录 前言 常用命令 扩展应用 总结 本系列先前的随笔位于新浪博客 前言 Vi和Vim都是文本编辑器,不同的是Vim是Vi的升级版本,它不仅兼容Vi的所有指令,而且还有一些新的特性在里面. Vim/V ...

  5. Vim/Vi实用技巧(第二版)

    Vim/Vi实用技巧 1.导入文件 :r [文件名] #导入到当前编辑的文件中 如 :r /etc/inittab 文件上部为/etc/services文件,下部为/etc/inittab文件 2.执 ...

  6. Vim/Vi常用操作(第二版)

    周围同事不是用vim就是Emacs,你要是用一ultraedit,你都不好意思跟人家打招呼;什么插件呀,语法高亮呀,拼写检查呀,能给它开的都给它开着,就是一个字儿:酷. 你说这么牛B一东西,怎么着学会 ...

  7. Linux学习之Vim/Vi使用(十三)

    Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...

  8. Vim/Vi的使用

     Vim 是vi的加强 Gvim图形化的vim Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/Unix上最常用的文本编辑器,他们 的作用是建立,编辑,显示文本文件 Vi ...

  9. Linux——vim/vi 简单学习笔记

    Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件.Vim/Vi 没有菜单,只有命令. 早前也用过Vim变过C++/C的代码, ...

随机推荐

  1. 【TCP/IP详解 卷一:协议】第十九章 TCP的交互数据流

    19.1 引言 前一章我们介绍了TCP连接的建立与释放:三握四挥,以及状态转移图. TCP报文段分为:交互数据,以及成块数据(下一章介绍). 交互数据:例如telnet,ssh,这种类型的协议在大多数 ...

  2. 记一次诡异的bug

    使用django做项目,在视图函数中需要查询,查询前构造一个查询参数的模型来过滤参数防止报错,然后调用模型的方法返回一个字典,包括了所有查询的字段和值,发现只要查询过一次之后,后续的访问查询结果会在之 ...

  3. python-ConfigParser模块--转载

    1,函数介绍 1.1.读取配置文件 -read(filename) 直接读取ini文件内容-sections() 得到所有的section,并以列表的形式返回-options(section) 得到该 ...

  4. 样本打散后计算单特征 NDCG

    单特征 NDCG 能计算模型的 NDCG,也就能计算单特征的 NDCG,用于评估单特征的有效性,跟 Group AUC 用途一样 单特征 NDCG 如何衡量好坏 如果是 AUC,越大于或小于 0.5, ...

  5. hdu 1796 How many integers can you find 容斥定理

    How many integers can you find Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  6. go 语言字典遍历

    package main import "fmt" func main() { var countryCapitalMap map[string]string /*创建集合 */ ...

  7. [设计模式]适配器模式Adapter

    将一个类的接口转换成客户希望的另外一个接口. A d a p t e r模式使得原本 由于接口不兼容而不能一起工作的那些类可以一起工作.

  8. 8天掌握EF的Code First开发

    C#高级知识点&(ABP框架理论学习高级篇)——白金版 http://www.cnblogs.com/farb/p/ABPAdvancedTheoryContent.html

  9. w3c标准 dom对象 事件冒泡和事件捕获

    http://www.cnblogs.com/chengxs/p/6388779.html http://www.jb51.net/article/42492.htm W3C标准是什么? 1.表现(c ...

  10. [.NET开发] C# BigInteger 处理超大整型数字

    今天遇到一个要处理XSD中Integer的数值区间的计算的问题,Integer这个类型的值区间理论上是可没有边界的,假设目前的值是1.5E+10000, 这个数字已经达到double和Int64都无法 ...