您的位置:首页 > 其它

记录一些简单实用的vim用法

2010-05-18 10:45 225 查看
lsof -i:6789

查看哪些进程占用了6789端口

1.

假如有这么一句  #include "SocketTask.h"

如果想查看这个文件内容,那么就把光标放上面,输入命令gf~好记吧

 

 

2.

:q是退出;   q:呢?是查看输入的命令历史

 

 

3.  寄存器命令

 

用q命令,后面跟寄存器名字(单个字母假设是a),开始记录你的命令输入; 最后输入q,结束命令记录;

用@a  重复执行你刚才记录的命令

 

 

4. CTRL+D CTRL+U是翻滚半个屏幕,而CTRL+B CTRL+F是翻滚整个屏幕

 

 

5. H  光标移动到屏幕第一行

 M 移动到中间一行

L 移动到最后一行

 

 

6 vi -R file或者view file,只读打开文件

 

 

7 恢复删除:每当你删除一些内容,这些内容被保存在缓冲区。一共有9个这样的缓冲区,最近删除的保存在缓冲区1.

"2p命令就是把缓冲区2的内容粘贴出来,注意,前面有个引号。

 

 

8 复制到缓冲区:"dyy  前面有个引号,把当前行复制到d缓冲区; "dp   把缓冲区d的内容粘贴出来

"a7yy   把当前七行复制到缓冲区a。

 

 

9 书签: mx 命令 把当前位置命名为书签x,x是任意字母。 'x 是定位到书签x

 

 

10 冒号模式下 :/pattern/d 删除匹配的一行

:g/pattern/d  删除匹配的所有行

 

 

11 编辑多文件  vi file1 file2  

:n  切换文件

 

 

12 另一种复制粘贴的办法

:1,5ya a  复制前5行到缓冲区a

:pu a  将缓冲区a的内容粘贴出来

 

 

 

13 替换时确认

:1,$s/old/new/gc

 

 

 

14 命令模式下不会被使用的字符:g K q v V

map的时候考虑这几个字母

 

 

 

15 :set list

文本中的tab会被显示为^I, 结束符会显示为$

 

 

 

 16 关于 关键字 自动补全

    ) CTRL X + CTRL L, 在本文件中寻找匹配的某一行,自动补全

) CTRL X + CTRL N, 在本文件中寻找匹配的某一关键词,自动补全

) CTRL X + CTRL I, 在本文件以及include头文件中寻找匹配的某一关键词,自动补全

) CTRL X + CTRL P, 在本文件寻找匹配的某一关键词,自动补全

) CTRL X + CTRL F, 寻找匹配的某一文件名,自动补全

) CTRL X + CTRL D, 在本文件以及include头文件中寻找匹配的宏定义,自动补全  

 

17 w 是移动到单词首字母,而 e 是移动到单词尾字母 减号是移动到上一行的首部

 

dG  从光标位置删除到文件尾部,

yG  从光标位置到文件尾部,复制

 

 

18 VISUAL模式

v 进入该模式, aw 选择一个单词;

其实在visual模式下,命令模式下的命令仍然是有用的~

 

////////////////////

VIM手册

1. 快速入门 *:syn-qstart*

*:syn-enable* *:syntax-enable*
这个命令打开语法高亮:

:syntax enable


实际上,它只是执行如下命令
:source $VIMRUNTIME/syntax/syntax.vim


如果没有设置 VIM 环境变量,Vim 会试图用其它方法找到该路径 (见 |$VIMRUNTIME|)。
通常总能找到,如果不行,你可以自己设置 VIM 环境变量为存放 Vim 相关文件所在的
目录。例如,如果你的语法文件放在 "/usr/vim/vim50/syntax" 目录,设置
$VIMRUNTIME 为 "/usr/vim/vim50"。启动 Vim 前,你必须在外壳上进行此设置。

*:syn-on* *:syntax-on*
":syntax enable" 命令会保持你当前的色彩设置。这样,不管在使用此命令的前后,你
都可以用 ":highlight" 命令设置你喜欢的颜色。如果你希望 Vim 用缺省值覆盖你自己
的,只要用:
:syntax on


*:hi-normal* *:highlight-normal*
如果你运行在 GUI 环境里,你可以这样得到黑底白字:
:highlight Normal guibg=Black guifg=White

关于色彩终端,见 |:hi-normal-cterm|。
关于设置你自己的语法高亮色彩,见 |syncolor|。

注意
: MS-DOS 和 Windows 上的语法文件以
<CR>
<NL>
结束每一行。Unix 上则以
<NL>

结尾。这意味着你需要为自己的系统选择合适的文件。不过,在 MS-DOS 和 Windows
上,如果 'fileformats' 选项非空,会自动选择正确的格式。

注意
: 使用反转视频时 ("gvim -fg white -bg black"),'background' 的缺省值直到
GUI 窗口打开时才会设置。这发生在 |gvimrc| 的读入之后,从而会使用错误的缺省高
亮。要在打开高亮前设置 'background' 的缺省值,在 |gvimrc| 文件里包含 ":gui" 命
令:

:gui         " 打开窗口并设置 'background' 的缺省值

:syntax on   " 启动语法高亮,使用 'background' 来设置颜色


注意
: 在 |gvimrc| 里使用 ":gui" 意味着 "gvim -f" 不会在前台打开!这时,要使用
":gui -f"。

你可以用这个命令切换语法的打开/关闭
:if exists("syntax_on") | syntax off | else | syntax enable | endif


要把它放到映射里,你可以用:
:map 
<F7>
:if exists("syntax_on") [code]<Bar>

/   syntax off 
<Bar>

[code] / else
<Bar>

[code] / syntax enable
<Bar>

[code] / endif
<CR>

[使用 |<>| 记法,按本义输入]

细节:
":syntax" 命令是用执行文件脚本实现的。要了解它到底干了什么,察看以下文件:
[code] 命令 文件

:syntax enable $VIMRUNTIME/syntax/syntax.vim
:syntax on $VIMRUNTIME/syntax/syntax.vim
:syntax manual $VIMRUNTIME/syntax/manual.vim
:syntax off $VIMRUNTIME/syntax/nosyntax.vim
另见 |syntax-loading|。

2. 语法文件 *:syn-files*

某个语言的语法和高亮命令通常存在一个语法文件里。命名惯例是: "
{name}
.vim"。其
中,
{name}
是语言的名字或者缩写 (一旦在 DOS 文件系统上,要适用 8.3 字符的名字
限制)。
例如:
c.vim perl.vim java.vim html.vim
cpp.vim sh.vim csh.vim

语法文件可以包含任何 Ex 命令,就像 vimrc 文件那样。但应该只有适用于特定语言的
命令才放在里面。如果该语言是另外一个语言的超集,它可以包含那个语言对应的文件。
例如,cpp.vim 可以包含 c.vim 文件:
:so $VIMRUNTIME/syntax/c.vim


.vim 文件通常使用自动命令载入。例如:
:au Syntax c     runtime! syntax/c.vim

:au Syntax cpp   runtime! syntax/cpp.vim

这些命令通常出现在 $VIMRUNTIME/syntax/synload.vim 文件里。

如果你有多个文件,可以用文件类型作为目录名。该目录下的所有 "*.vim" 文件都会被
使用。例如:
~/.vim/after/syntax/c/one.vim
~/.vim/after/syntax/c/two.vim

创 立 你 自 己 的 语 法 文 件 *mysyntaxfile*

一旦你创立自己的语法文件,并且需要 Vim 在使用 ":syntax enable" 的时候自动调用
它们的时候,按如下操作进行:

1. 建立自己的用户运行时目录。通常,把它放在 'runtimepath' 选项的第一项。Unix
的例子:
mkdir ~/.vim


2. 在其中建立 "syntax" 目录。Unix 上:
mkdir ~/.vim/syntax


3. 编写 Vim 语法文件。或者从 internet 下载。然后写入你的 syntax 目录。例如,对
于 "mine" 语言的语法:
:w ~/.vim/syntax/mine.vim


现在你可以手动启动语法文件:
:set syntax=mine

这时,你并不需要退出 Vim。

如果你想 Vim 也实现文件类型的检测,见 |new-filetype|。

如果你想为多个用户设立系统,而不希望每个用户增加相同的语法文件的话,可以使用
'runtimepath' 里的其它目录。

添 加 到 已 存 在 的 语 法 文 件 *mysyntaxfile-add*

如果你对已有的语法文件大体满意,只需要增加或者修正一些高亮项目,执行以下步骤即
可:

1. 建立你的 'runtimepath' 里的用户目录,见上。

2. 在那里建立目录 "after/syntax"。Unix 上:
mkdir ~/.vim/after

mkdir ~/.vim/after/syntax


3. 编写 Vim 脚本,包含你希望使用的命令。例如,要在 C 语法里改变颜色:
highlight cComment ctermfg=Green guifg=Green


4. 把该文件写道 "after/syntax" 目录。使用该语法的名字,另加上 ".vim"。对于我们
的 C 语法:
:w ~/.vim/after/syntax/c.vim


这样就行了。下一次你编辑 C 文件时,Comment 色彩就不会一样了。你甚至不需要重启
Vim。

替 换 已 存 在 的 语 法 文 件 *mysyntaxfile-replace*

如果你不喜欢发布的语法文件版本,或者你下载了新版本。可以采用上述的
|mysyntaxfile| 相同的步骤。只要确保你写的语法文件在 'runtimepath' 较早的位置就
可以了。Vim 只会载入第一个找到的语法文件。

命 名 惯 例
*group-name* *{group-name}">
{group-name}
* *E669* *W18*
高亮或者语法组的名字必须由 ASCII 字母,数字和下划线组成。如使用正规表达式表示:
"[a-zA-Z0-9_]*"。

要允许每个用户选择他自己喜欢的色彩系列,许多语言应该使用相同的高亮组名。以下是
建议的组名 (如果语法高亮能够正确工作,你应该能看到实际的颜色,除了 "Ignore" 以
外):

*Comment v 任何注释

*Constant v 任何常数
String v 一个字符串常数: "这是一个字符串"
Character v 一个字符常数: 'c'、'/n'
Number v 一个数字常数: 234、0xff
Boolean v 一个布尔型常数: TRUE、false
Float v 一个浮点常数: 2.3e10

*Identifier v 任何变量名
Function v 函数名 (也包括: 类的方法名)

*Statement v 任何语句
Conditional v if、then、else、endif、switch 等
Repeat v for、do、while 等
Label v case、default 等
Operator v "sizeof"、"+"、"*" 等
Keyword v 任何其它关键字
Exception v try、catch、throw

*PreProc v 通用预处理命令
Include v 预处理命令 #include
Define v 预处理命令 #define
Macro v 等同于 Define
PreCondit v 预处理命令 #if、#else、#endif 等

*Type v int、long、char 等
StorageClass v static、register、volatile 等
Structure v struct、union、enum 等
Typedef v 一个 typedef

*Special v 任何特殊符号
SpecialChar v 常数中的特殊字符
Tag v 这里可以使用
CTRL-]

Delimiter v 需要
注意
的字符
SpecialComment v 注释里的特殊字符
Debug v 调试语句

*Underlined v 需要突出的文本,HTML 链接

*Ignore v 留空,被隐藏

*Error v 任何有错的构造

*Todo v 任何需要特殊
注意
的部分;多是关键字 TODO FIXME 和 XXX

* 标记的名字是主要组,其它是次要组。对主要组而言,"syntax.vim" 文件包含缺省的
高亮设置。次要组则链接到主要组。所以它们拥有相同的高亮设置。不过,你可以通过
":highlight" 命令在 "syntax.vim" 文件之后改变所有组的缺省值。

注意
高亮组的名字对大小写不敏感。"String" 和 "string" 可用来表示相同的组。

以下名字是保留字,它们不应用作组名:
NONE ALL ALLBUT contains contained 
颜色高亮:

如果没有root权限,请将C.VIM拷贝到~下的.VIM/SYNTAX目录下。

高亮函数名字:

syn match cFun display "[a-zA-Z_][a-zA-Z_0-9]/{-1,}/s/{-0,}(/{1}"ms=s,me=e-1                                                  
hi def link cFun Special

高亮合法的标识符:

syntax match cUserword display "/<[a-zA-Z_][a-zA-Z_0-9]*/>[^(]"ms=s,me=e-1
highlight def link cUserword Comment
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息