zl程序教程

您现在的位置是:首页 >  工具

当前栏目

我的vim 配置——nerdtree、ack vim、vim sneak

Vim配置 ACK
2023-09-14 09:11:56 时间
set nu 
colorscheme darkblue
syntax on
" set term=xterm                 " 设置终端类型 
set nonumber                   " 是否显示行号。
set ambiwidth=double            " 将所有字符显示为全角宽度
set wildmenu                    " 自动补全的时候,将补全内容使用一个漂亮的单行菜单形式显示出来。
set whichwrap=b,s,<,>,[,]       " 光标从行首和行末时可以跳到另一行去
set nobackup                    " 取消备份
set noswapfile                  " 不生成交换文件
autocmd FileType * setl fo-=cro " 关闭自动添加注释的效果
" 支持鼠标滚动
" set mouse=a
colorscheme     elflord         " 设定颜色主题
" netrw文件浏览器
set autochdir                   " 当打开一个文件时,自动切换到该文件所在的目录
let g:netrw_altv         = 1    " 与preview项相配合,在右侧打开预览文件
let g:netrw_preview      = 1    " 在一个垂直列表中打开预览文件
let g:netrw_liststyle    = 3    " 列表模式-文件夹浏览模式
let g:netrw_winsize      = 30   " 文件夹列表的宽度(30个字符)
let g:netrw_browse_split = 4    " 在当前窗口的新区域内预览文件(与P操作相同)
" 编写函数实现开关 Vexplore 文件夹列表的效果
function! ToggleVExplorer()
  if exists("t:expl_buf_num")
      let expl_win_num = bufwinnr(t:expl_buf_num)
      if expl_win_num != -1
          let cur_win_nr = winnr()
          exec expl_win_num . 'wincmd w'
          close
          exec cur_win_nr . 'wincmd w'
          unlet t:expl_buf_num
      else
          unlet t:expl_buf_num
      endif
  else
      "exec '1wincmd w'
      Vexplore
      let t:expl_buf_num = bufnr("%")
  endif
endfunction
" 按键 => 指令快捷方式
map <C-n> :tabn<CR>
map <C-b> :tabprevious<CR>
map <S-t> :call ToggleVExplorer()<CR>
set paste                       " 复制模式
map <C-p> :NERDTreeToggle<CR>
execute pathogen#infect()
call pathogen#helptags()
let g:sneak#label = 1
" Use deoplete.
" let g:deoplete#enable_at_startup = 1
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent

我的配置就是酱紫!

其中,还需要做的工作有以下几个:

安装nerdtree插件,两种方式,推荐第二种(1) http://www.vim.org/scripts/script.php?script_id=1658

下载zip,然后解压到.vim目录下。

(2)或者是通过vim插件管理工具apt-vim安装:

curl -sL https://raw.githubusercontent.com/egalpin/apt-vim/master/install.sh | sh

apt-vim install -y https://github.com/scrooloose/nerdtree.git

 

.vimrc中输入,

map <C-p> :NERDTreeToggle<CR>

就可以使用ctrl p来关闭nerdtree的窗口了!

nerdtree窗口乱码解决方法:
#     今天在centos上安装了vim74 ,把配置文件vimrc和nerdtreee插件付上后发现nerdtree 目录树为'铝'
# 这样的乱码符号,正常应该为'+'号
# 下面是解决办法
           vim /usr/local/share/vim/vim74/plugin/NERD_tree.vim      # 编辑插件
                 # 找到下面这句把那个"!"去掉,保存退出重启vim即可
                 call s:initVariable("g:NERDTreeDirArrows", !s:running_windows)

安装代码搜索插件,ack vim——太特么好用了!
mac: brew install ack
然后再:
apt-vim install -y https://github.com/mileszs/ack.vim.git
然后vim里:Ack find-pattern dir 就可以在指定的dir里查找了。

Ack是一个给程序员用的grep, 使用perl regular expressions, 而不是POSIX/GNU subset.

why ack?

  • 使用perl regular expressions, 忘掉grep那套不人性的pattern吧
  • 速度快, 默认只搜索程序代码文件
  • 自动忽略.svn, .git, CVS这类目录, 默认递归搜索子目录
1
2
3
4
5
6
  1. # with grep
  2. $ grep pattern $(find . -type f | grep -v '\.svn')
  3. or
  4. $ grep -R --exclude-dir .svn pattern
  5. # with ack
  6. $ ack pattern
  • 支持搜索指定文件类型
1
2
  1. # 只搜索ruby code
  2. $ ack --ruby pattern

install

1
2
3
4
  1. # mac
  2. $ brew install ack
  3. # ubuntu
  4. $ sudo apt-get install ack-grep

integrate into vim

  • install ack.vim
  • set grepprg=ack in vimrc

custom ack

Ack默认包含很多filetype => extensions的设置,但新出现的语言不一定支持。好在ack提供--type-add TYPE=.EXTENSION[,.EXT2[,...]]--type-set TYPE=.EXTENSION[,.EXT2[,...]]来扩展。经常用的可以加到~/.ackrc里, 我的.ackrc:

1
2
3
4
5
6
7
  1. $ cat ~/.ackrc
  2. --type-add
  3. ruby=.haml,.ru
  4. --type-add
  5. css=.scss,.sass,.less
  6. --type-add
  7. js=.coffee
 

安装代码快速跳转——太特么好用了!!!

apt-vim install -y https://github.com/justinmk/vim-sneak.git
然后 vimrc加入
let g:sneak#label = 1

vim 里使用 s?? 其中??为你要搜索的两个精确字符。使用;,和进行快速跳转!