Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61083
  • 博文数量: 25
  • 博客积分: 768
  • 博客等级: 军士长
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-19 12:52
文章分类

全部博文(25)

文章存档

2013年(1)

2012年(24)

我的朋友

分类: LINUX

2012-10-04 17:44:44

先从vim的安装说起:

1,首先把 vimrc和gvimrc 文件的位置改在/etc目录下:

echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h
,2,,./configure --prefix=/usr

3, make (make test) make install

4,    ln -s vim /usr/bin/vi

5,在默认情况下, vim 是以与 vi 兼容的模式运行。有些人可能喜欢这种模式,但是我们强烈建议使用 vim 模式运行 vim (要不然我们就不必把 vim 包含到这本书里了,用老的 vi 不是更好?)。使用如下命令建立/root/.vimrc:

cat > /etc/vimrc << "EOF" " Begin /etc/vimrc set nocompatible set backspace=2 syntax on " End /etc/vimrc EOF

set nocompatible 将使vim以比缺省的vi兼容模式功能更强的方式运行。set backspace=2 让退格键能跨行,自动缩进并开始插入。syntax on 打开vim的语法高亮功能。

 


vi 的工作模式:编辑模式,插入模式,命令模式


k
jhl功能分别等同于上、下、左、右箭头键
Ctrl+b
在文件中向上移动一页(相当于 PageUp键)
Ctrl+f
在文件中向下移动一页(相当于 PageDown键)
H
将光标移到屏幕的最上行(Highest
nH
将光标移到屏幕的第 n
2H
将光标移到屏幕的第 2
M
将光标移到屏幕的中间(Middle
L
将光标移到屏幕的最下行(Lowest
nL
将光标移到屏幕的倒数第 n
3L
将光标移到屏幕的倒数第 3
w
在指定行内右移光标,到下一个字的开头
e
在指定行内右移光标,到一个字的末尾
b
在指定行内左移光标,到前一个字的开头
0
数字0,左移光标,到本行的开头
$
右移光标,到本行的末尾
^
移动光标,到本行的第一个非空字符

rc
c替换光标所指向的当前字符
nrc
c替换光标所指向的前 n个字符
x
删除光标所指向的当前字符
nx
删除光标所指向的前 n个字符
ndw
删除光标右侧的 n个字
db
删除光标左侧的字
ndb
删除光标左侧的 n个字
5db
删除光标左侧的 5个字
dd
删除光标所在行,并去除空隙
ndd
删除 n行内容,并去除空隙
3dd
删除 3行内容,并去除空隙

将其粘贴到正文中的指定位置。完成这一操作的命令是:
p
小写字母 p,将缓冲区的内容粘贴到光标的后面
P
大写字母 P,将缓冲区的内容粘贴到光标的前面

注意上述两个命令中字母的大小写。vi编辑器经常以一对大、小写字母(如 p P)来提供一对相似的功能。通常,小写命令在光标的后面进行操作,大写命令在光标的前面进行操作。


yy
复制当前行到内存缓冲区
nyy
复制 n行内容到内存缓冲区




6.
文本选中
vi
可进入到一种成为 Visual的模式,在该模式下,用户能用光标移动命令可视地选择文本,然后再执行其他编辑操作,例如删除、复制
等。 v字符选中命令 V行选中命令

1.
进入插入模式
在编辑模式下正确定位光标之后,可用以下命令转换到插入模式:
i
在光标左侧输入正文
a
在光标右侧输入正文
o
在光标所在行的下一行增添新行
O
在光标所在行的上一行增添新行
I
在光标所在行的开头输入正文
A
在光标所在行的末尾输入正文
上面介绍了几种转换到插入模式的简单方法。另外更有一些命令,他们允许在进入插入模式之前首先删去一段
正文,从而实现正文的替换。这些命令包括:
s
用输入的正文替换光标所指向的字符
ns
用输入的正文替换光标右侧 n个字符
cw
用输入的正文替换光标右侧的字
ncw
用输入的正文替换光标右侧的 n个字
cb
用输入的正文替换光标左侧的字
ncb
用输入的正文替换光标左侧的 n个字
cd
用输入的正文替换光标的所在行
ncd
用输入的正文替换光标下面的 n
c$
用输入的正文替换从光标开始到本行末尾的所有字符
c0
用输入的正文替换从本行开头到光标的所有字符

:345w file
将第 345行写入 file文件
:3,5w file
将第 3行至第 5行写入 file文件
:1,.w file
将第 1行至当前行写入 file文件
:.,$w file
将当前行至最后一行写入 file文件
:.,.+5w file
从当前行开始将 6行内容写入 file文件
:1,$w file
将所有内容写入 file文件,相当于 :w file命令
在命令模式下,允许从文件中读取正文,或将正文写入文件。例如:
:w
将编辑的内容写入原始文件,用来保存编辑的中间结果
:wq
将编辑的内容写入原始文件并退出编辑程式(相当于 ZZ命令)
:w file
将编辑的内容写入 file文件,保持原有文件的内容不变
:a,bw file
将第 a行至第 b行的内容写入 file文件
:r file
读取 file文件的内容,插入当前光标所在行的后面
:e file
编辑新文件 file代替原有内容
:f file
将当前文件重命名为file
:f
打印当前文件名称和状态,如文件的行数、光标所在的行号等

4.
正文替换
利用 :s命令能实现字符串的替换。具体的用法包括:
:s/str1/str2/
用字符串 str2替换行中首次出现的字符串 str1
:s/str1/str2/g
用字符串 str2替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g
用字符串 str2替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g
用字符串 str2替换正文中所有出现的字符串 str1
:g/str1/s//str2/g
功能同上
从上述替换命令能看到:g放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
字符串的首次出现进行替换;g放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

6.
恢复文件
vi
在编辑某个文件时,会另外生成一个临时文件,这个文件的名称通常以 .开头,并以 .swp结尾。vi
正常退出时,该文件被删除,若意外退出,而没有保存文件的最新修改内容,则能使用恢复命令:
:recover
恢复文件
也能在启动 vi时利用 -r选项。

为控制不同的编辑功能,vi提供了非常多内部选项。利用 :set命令能设置选项。基本语法为:
:set option
设置选项 option
常见的功能选项包括:
autoindent
设置该选项,则正文自动缩进
ignorecase
设置该选项,则忽略规则表达式中大小写字母的差别
number
设置该选项,则显示正文行号
ruler
设置该选项,则在屏幕底部显示光标所在行、列的位置
tabstop
设置按 Tab键跳过的空格数。例如 :set tabstop=nn默认值为 8
mk
将选项保存在当前目录的 .exrc文件中

在编辑正文时,利用 vi命令模式下提供的 shell转换命令,无须退出 vi即可执行 Linux命令,十分
方便。语法格式为:
:! command
执行完 shell命令 command后回到 vi
另外,在编辑模式下,键入 K,可命令 vi查找光标所在单词的手册页,相当于运行 man命令。:g/^/m0



:%s/old_word/new_word/g


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" =>全局配置

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"关掉兼容模式

set nocompatible

   

"设置历史记录步数

set history=400

   

"开启文件类型判断插件

filetype plugin on

filetype indent on

   

"当文件在外部被修改,自动更新该文件

set autoread

  

"设置快速保存和退出

"快速保存为,s

"快速退出(保存)为,w

"快速退出(不保存)为,q

nmap s :w!

nmap w :wq!

nmap q :q!

  

"map :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .

"设置快捷键为win方式的快捷键

"source $VIMRUNTIME/mswin.vim

"behave mswin

  

"set pastetoggle=

  

"tag

set tag=../tags,../TAGS,tags,TAGS

  

"cscope

set cscopequickfix=s-,c-,d-,i-,t-,e-

  

"c\h文件切换

nnoremap :A

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" =>字体和颜色

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"开启语法

syntax enable

   

"设置字体

set guifont=dejaVu\ Sans\ Monospace\ 12

   

"设置配色

colorscheme desert

   

"高亮显示当前行

set cursorline

hi cursorline guibg=#222222

hi CursorColumn guibg=#333333

  

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" =>文件和备份

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"关闭自动备份

set nobackup

set nowb

  

"关闭交换文件

set noswapfile

  

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" =>折叠

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"开启折叠

"set nofen

set fdl=0

set fdc=2

set fdm=syntax

  

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" =>文字处理

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"设置(软)制表符宽度为4

set tabstop=4

set softtabstop=4

  

"set smarttab

  

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" =>缩进

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"自动缩进

set ai

   

"智能缩进

set si

  

"设置缩进的空格数为4

set autoindent

  

"设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置

set shiftwidth=4

  

"设置使用 C/C++语言的自动缩进方式

set cindent

  

  

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" => Vim界面

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"Set 7 lines to the curors - when moving vertical..

"set so=7

   

"Turn on WiLd menu

"set wildmenu

   

"显示标尺

set ruler

   

"设置命令行的高度

set cmdheight=1

   

"显示行数

set nu

  

"显示匹配的括号([{}])

set showmatch

  

"高亮显示搜索的内容

set hlsearch

 tags的用法

阅读(1255) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~