VIMer不用羡慕EMACSer了

来源:互联网 发布:chart.js饼状图 图例 编辑:程序博客网 时间:2024/04/29 22:50

学习使用Lisp当然是用emacs+slime, 但像偶这种已经深受VIM"毒害"的能不能拥有emacs那样的环境呢?

答案是肯定的,因为有了slimv,可能功能没有slime强大,但也基本够用了。这里有一篇教程。


目前偶使用最多的环境是:stumpwm(swank) + vim(slimv), 用VIM看Common Lisp代码时,只需要按<,c>就可以快速连上stumpwm中的swank server(是因为stumpwm本身就是一个完整的CL环境), 然后就可以在REPL中测试CL代码。


记录一下常用的slimv按键:

<,c>   联结/启动swank server

<,e>   Eval current s-expression

<,d>   Eval currenttop-level form

<,r>   Eval选中区域

<,b>   Eval buffer

<,g>   set the current package

<,v>   交互式Eval

<,u>   取消函数定义

<,s>   显示symbol描述信息


<,W>   Wrap s-expression in a new pair of parentheses

<,S>   remove the outer pair of parentheses (Splice)

<,O>   Split s-expression

<,J>   Join s-expression

<,<>   Move parens to the Left

<,>>   Move parens to the Right


<,D>   compile函数

<,F>   compile整个文件

<,L>   compile & load整个文件


<,h>   查CL-HyperSpec(如果用Opera,需要在~/.vimrc中加入: let g:slimv_browser_cmd = "opera")

...


附~/.vimrc

colorscheme torte
"Toggle Menu and Toolbar scrollbar
"set guioptions-=m
set guioptions-=T
set guioptions-=r

set nocompatible
"设置历史记录步数
set history=400
"开启文件类型判断插件
filetype plugin on
filetype indent on
"当文件在外部被修改,自动更新该文件
set autoread


"激活鼠标的使用
"set mouse=a
set paste
set clipboard=unnamed
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set smarttab

set nobackup
set noswapfile

set cindent
set smartindent

"set incsearch
set autoindent
set hlsearch
set showmatch
set backspace=2
"set backspace=eol,start,indent

set mps+=<:>

set dy=lastline

syntax enable
syntax on

"filetype on
filetype plugin on
filetype indent on

set encoding=utf-8
"set fileencodings=utf-8,chinese
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set history=50

"set foldcolumn=2
"set foldmethod=indent
"set foldlevel=3

set ruler
set showcmd

au BufRead,BufNewFile *.asd set filetype=lisp

"Change work dir to current dir
autocmd BufEnter * cd %:p:h

set sessionoptions+=resize,winpos
"autocmd VIMEnter * :source ~/.vim_session
"autocmd VIMLeave * :mksession! C:/session.vim

"autocmd FileType python setlocal et sta sw=4 sts=4
"autocmd FileType python setlocal foldmethod=indent

" tab
"map <S-Down> :tabnew<CR>
"map <S-Left> :tabp<CR>
"map <S-Right> :tabn<CR>

map <S-Left> :b#<CR> :bd#<CR>

map <F12> :mksession! ~/.vim_session <cr> " Quick write session with F2
map <F2> :source ~/.vim_session <cr> " And load session with F3

nmap <C-F7> :%!xxd -g 1<CR>
nmap <S-F7> :%!xxd -r<CR>

"let g:slimv_swank_cmd = '! xterm -e sbcl --load ~/.vim/slime/start-swank.lisp &'
"let g:swank_log = 1
let g:slimv_browser_cmd = "opera"

" debug VIM
"set verbosefile=test.log
"set verbose=20


原创粉丝点击