学习是一个逐步发现自己无知的过程!

Vim

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性 Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。 在Shell编程中会是必备的命令编辑器、熟练使用这是最基础的。

1、Vim相关配置文件

2、Vim配置方案

  syntax on         语法检查及高亮
  set fenc=utf-8    设定默认解码
  set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
  set number        显示行号
  set autoindent    vim使用自动对齐,也就是把当前行的对齐格式应用到下一行
  set smartindent   依据上面的对齐格式,智能的选择对齐方式
  set tabstop=4     设置tab键为4个空格
  set shiftwidth=4  设置当行之间交错时使用4个空格
  set ruler         设置在编辑过程中,于右下角显示光标位置的状态行
  set incsearch     设置增量搜索,这样的查询比较smart
  set showmatch     高亮显示匹配的括号
  set matchtime=10  匹配括号高亮时间(单位为 1/10 s)
  set ignorecase    在搜索的时候忽略大小写
  \#set nobackup    禁止生成临时
  set cursorline    当前行高亮
  set t_Co=256      支持256色
  colorscheme molokai   使用molokai颜色模板

 

3、  .vimrc vi的配置文件

用户家目录下创建 .vimrc 即 ~/.vimrc

[root@web01 ~]# cat .vimrc

  syntax on
  set fenc=utf-8
  set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
  set number
  set autoindent
  set smartindent
  set tabstop=2
  set shiftwidth=2
  set ruler
  set incsearch
  set showmatch
  set matchtime=10
  set ignorecase
  set nobackup
  set cursorline
  set t_Co=256
  #colorscheme molokai

  syntax on
  set fenc=utf-8
  set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
  set number
  set autoindent
  set smartindent
  set tabstop=2
  set shiftwidth=2
  set ruler
  set incsearch
  set showmatch
  set matchtime=10
  set ignorecase
  set nobackup
  set t_Co=256

4、vim配置模板

  [root@web01 ~]# cd **/usr/share/vim/vim74/colors/** 
  [root@web01 colors]# ll
  total 72
  -rw-r--r--. 1 root root 2476 Jul 24  2015 blue.vim
  -rw-r--r--. 1 root root 2990 Jul 24  2015 darkblue.vim
  -rw-r--r--. 1 root root  548 Jul 24  2015 default.vim
  -rw-r--r--. 1 root root 2399 Jul 24  2015 delek.vim
  -rw-r--r--. 1 root root 2812 Jul 24  2015 desert.vim
  -rw-r--r--. 1 root root 1666 Jul 24  2015 elflord.vim
  -rw-r--r--. 1 root root 2476 Jul 24  2015 evening.vim
  -rw-r--r--. 1 root root 3476 Jul 24  2015 koehler.vim
  -rw-r--r--. 1 root root 2460 Jul 24  2015 morning.vim
  -rw-r--r--. 1 root root 2006 Jul 24  2015 murphy.vim
  -rw-r--r--. 1 root root 1037 Jul 24  2015 pablo.vim
  -rw-r--r--. 1 root root 2673 Jul 24  2015 peachpuff.vim
  -rw-r--r--. 1 root root 2311 Jul 24  2015 README.txt
  -rw-r--r--. 1 root root 1393 Jul 24  2015 ron.vim
  -rw-r--r--. 1 root root 2720 Jul 24  2015 shine.vim
  -rw-r--r--. 1 root root 2445 Jul 24  2015 slate.vim
  -rw-r--r--. 1 root root 1629 Jul 24  2015 torte.vim
  -rw-r--r--. 1 root root 1840 Jul 24  2015 zellner.vim

5、实用的.vimrc

cat .vimrc

  set number
  "SET Comment START
  autocmd BufNewFile *.php,*.js,*.cpp exec ":call SetComment()" |normal 10Go
  func SetComment()
  if expand("%:e") == 'php'
  call setline(1, "<?php")
  elseif expand("%:e") == 'js'
  call setline(1, '//JavaScript file')
  elseif expand("%:e") == 'cpp'
  call setline(1, '//C++ file')
  endif
  call append(0, '#!/bin/bash')
  call append(1, '################################################')
  call append(2, '# Filename: '.expand("%"))
  call append(3, '#')
  call append(4, '# Author: xdz - 1226032602@qq.com')
  call append(5, '# Description: ---')
  call append(6, '# Create: '.strftime("%Y-%m-%d %H:%M:%S"))
  call append(7, '# Last Modified: '.strftime("%Y-%m-%d %H:%M:%S"))
  call append(8, '################################################')
  " call append(9, '')
  endfunc
  map <F2> :call SetComment()<CR>:10<CR>o
  "SET Comment END

6、Vim快捷键

 

快捷键 功能
/word 光标从上向下查找一个名称为word的字符串
?word 光标从下向上查找一个名称为word的字符串
n 为向后执行一个对匹配内容的查找动作
N 与n相反
:n1,n2s#word1#word2#g 在n1与n2行之间查找word1并替换为word2
:%s#word1#word2#g 全文查找word1并替换为word2
:w 保存
:q 退出
:wq! 强制保存退出
: x 文档发生修改,则保存退出,否则,仅退出
ZZ 文档发生修改,则保存退出,否则,仅退出
:w filename 保存当前文档到filename文档中
:r filename 读入filename文档的内容并加载到当前文档
:n1,n2 w filename 将n1到n2行的内容保存成filename文件中
:n1,n2 co n3 将n1到n2行的内容拷贝到n3行后面
:n1,n2 m n3 将n1到n2行的内容移动到n3行后面
:!command 暂时离开vi到命令行模式下执行command的显示结果
:set nu 显示行号
:set nonu 取消行号
:noh 取消高亮显示
:vsp file 垂直分屏显示,同时显示当前文件和file文件内容
:sp file 水平分屏显示,同时显示当前文件和file文件内容

 

7、vim同时编辑多个文件

切换到下一个文件   :bn

切换到上一个文件   :bp

 

8、可视模式

批量插入内容

ctrl+v

选中行

shift+i 可以插入内容(例如#)

esc退出

错乱的文件对齐

v 进入可视

选中内容

按=号

9、搜索匹配

从上到下的顺序,匹配出每个单词bin

/<bin>           命令模式下执行

光标移动到行末,shift+j可以把下一行跟本行合并

文件的几行内容复制到文件末尾

  :3,5 co $

在非空行结尾添加一个字符串

  :%s#\(^[^( *$)].*\)#\1 www.abc.com#g

在非空行开头添加#

  :%s@\(^[^( *$)].*\)@#\1@g

删除空行

  :g/^ *$/d

删除所有行尾多余的空格

  :%s# *$##

10、vim帮助

搜索帮助例子

  :h
  :h :wq

11、vim 查看二进制文件

  :%!xxd

%表示整个文件

!把前面内容传递给特定的命令/软件

xxd 16进制编辑器

转换回来

  :%!xxd -r

12、其他查看二进制文件的工具

od -x /bin/cp

-x 十六进制

-d 十进制

-o 八进制

  xxd /bin/ls
  hexdump /bin/ls
  xxd  -g 1  -i  -u  -l 1000  cp >cp.txt
  -g          number of octets per group in normal output. Default 2. 每个goup的字节数,默认为2,可设置。
  -i          output in C include file style. :输出为c包含文件的风格,数组方式存在
  -l len      stop after <len> octets.        :转换到len个字节后停止转换。
  -u          use upper case hex letters. : 字节大写方式

 

 

赞(2)
未经允许不得转载:劉大帥 » Vim

你的评论可能会一针见血! 抢沙发

登录

找回密码

注册