diff --git a/dot_vim/bundle/vimux.git/LICENSE b/dot_vim/bundle/vimux.git/LICENSE deleted file mode 100644 index 678e440..0000000 --- a/dot_vim/bundle/vimux.git/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2103 Benjamin Mills - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/dot_vim/bundle/vimux.git/README.mkd b/dot_vim/bundle/vimux.git/README.mkd deleted file mode 100644 index b502841..0000000 --- a/dot_vim/bundle/vimux.git/README.mkd +++ /dev/null @@ -1,38 +0,0 @@ -# vimux - -Easily interact with tmux from vim. - -![vimux](https://www.braintreepayments.com/assets/images/blog/vimux3.png) - -What inspired me to write vimux was [tslime.vim](https://github.com/kikijump/tslime.vim), a plugin that lets you send input to tmux. While tslime.vim works well, I felt it wasn't optimized for my primary use case which was having a smaller tmux pane that I would use to run tests or play with a REPL. - -My goal with vimux is to make interacting with tmux from vim effortless. By default when you call `VimuxRunCommand` vimux will create a 20% tall horizontal pane under your current tmux pane and execute a command in it without losing focus of vim. Once that pane exists whenever you call `VimuxRunCommand` again the command will be executed in that pane. As I was using vimux myself I wanted to rerun commands over and over. An example of this was running the current file through rspec. Rather than typing that over and over I wrote `VimuxRunLastCommand` that will execute the last command you called with `VimuxRunCommand`. - -Other auxiliary functions and the ones I talked about above can be found bellow with a full description and example key binds for your vimrc. - -## Installation - -With **[vim-bundle](https://github.com/benmills/vim-bundle)**: `vim-bundle install benmills/vimux` -With **[Vundle](https://github.com/gmarik/Vundle.vim)**: 'Plugin benmills/vimux' in your .vimrc - -Otherwise download the latest [tarball](https://github.com/benmills/vimux/tarball/master), extract it and move `plugin/vimux.vim` inside `~/.vim/plugin`. If you're using [pathogen](https://github.com/tpope/vim-pathogen), then move the entire folder extracted from the tarball into `~/.vim/bundle`. - -_Notes:_ - -* Vimux assumes a tmux version >= 1.5. Some older versions might work but it is recommeded to use at least version 1.5. - -## Platform-specific Plugins - -* [vim-vroom](https://github.com/skalnik/vim-vroom) runner for rspec, cucumber and test/unit; vimux support via `g:vroom_use_vimux` -* [vimux-ruby-test](https://github.com/pgr0ss/vimux-ruby-test) a set of commands to easily run ruby tests -* [vimux-cucumber](https://github.com/cloud8421/vimux-cucumber) run Cucumber Features through Vimux -* [vim-turbux](https://github.com/jgdavey/vim-turbux) Turbo Ruby testing with tmux -* [vimux-pyutils](https://github.com/julienr/vimux-pyutils) A set of functions for vimux that allow to run code blocks in ipython -* [vimux-nose-test](https://github.com/pitluga/vimux-nose-test) Run nose tests in vimux -* [vimux-golang](https://github.com/benmills/vimux-golang) Run go tests in vimux -* [vimux-zeus](https://github.com/jingweno/vimux-zeus) Run zeus commands in vimux -* [vimix](https://github.com/spiegela/vimix) Run Elixir mix commands in vimux - -## Usage - -The full documentation is available [online](https://raw.github.com/benmills/vimux/master/doc/vimux.txt) and accessible inside vim `:help vimux` diff --git a/dot_vim/bundle/vimux.git/doc/vimux.txt b/dot_vim/bundle/vimux.git/doc/vimux.txt deleted file mode 100644 index 6b2e1f1..0000000 --- a/dot_vim/bundle/vimux.git/doc/vimux.txt +++ /dev/null @@ -1,355 +0,0 @@ -*vimux.txt* easily interact with tmux - - Vimux - effortless vim and tmux interaction - -============================================================================== -CONTENTS *vimux-contents* - - 1. About............................ |VimuxAbout| - 2. Usage ........................... |VimuxUsage| - 2.1 .............................. |VimuxPromptCommand| - 2.2 .............................. |VimuxRunLastCommand| - 2.3 .............................. |VimuxInspectRunner| - 2.4 .............................. |VimuxCloseRunner| - 2.5 .............................. |VimuxInterruptRunner| - 2.6 .............................. |VimuxClearRunnerHistory| - 2.7 .............................. |VimuxZoomRunner| - 2.8 .............................. |VimuxRunCommandInDir| - 3. Misc ............................ |VimuxMisc| - 3.1 Example Keybinding............ |VimuxExampleKeybinding| - 3.2 Tslime Replacement............ |VimuxTslimeReplacement| - 4. Configuration ................... |VimuxConfiguration| - - -============================================================================== -ABOUT (1) *VimuxAbout* - -Vimux -- Easily interact with tmux from vim. - -What inspired me to write vimux was tslime.vim [1], a plugin that lets you -send input to tmux. While tslime.vim works well, I felt it wasn't optimized -for my primary use case which was having a smaller tmux pane that I would use -to run tests or play with a REPL. - -My goal with vimux is to make interacting with tmux from vim effortless. By -default when you call `VimuxRunCommand` vimux will create a 20% tall -horizontal pane under your current tmux pane and execute a command in it -without losing focus of vim. Once that pane exists whenever you call -`VimuxRunCommand` again the command will be executed in that pane. As I was -using vimux myself I wanted to rerun commands over and over. An example of -this was running the current file through rspec. Rather than typing that over -and over I wrote `VimuxRunLastCommand` that will execute the last command -you called with `VimuxRunCommand`. - -Other auxiliary functions and the ones I talked about above can be found -bellow with a full description and example key binds for your vimrc. - -[1] https://github.com/kikijump/tslime.vim - - -============================================================================== -USAGE (2) *VimuxUsage* - -The function VimuxRunCommand(command) is the core of Vimux. It will -create a split pane in the current window and run the passed command in it. -> - :call VimuxRunCommand("ls") -< -This will run the command in a split pane without losing focus of vim. If the -command takes a long time to return you can continue to use vim while the -process finishes and will see the output in the pane when it's finished. - -Furthermore there are several handy commands all starting with 'Vimux': - - |VimuxRunCommand| - - |VimuxSendText| - - |VimuxSendKeys| - - |VimuxOpenPane| - - |VimuxRunLastCommand| - - |VimuxCloseRunner| - - |VimuxInspectRunner| - - |VimuxInterruptRunner| - - |VimuxPromptCommand| - - |VimuxClearRunnerHistory| - - |VimuxZoomRunner| - - |VimuxRunCommandInDir| - ------------------------------------------------------------------------------- - *VimuxRunCommand* -VimuxRunCommand~ - -Run a system command in a small horizontal split bellow -the current pane vim is in. You can optionally pass a second argument to stop -vimux from automatically sending a return after the command. -> - " Run the current file with rspec - map rb :call VimuxRunCommand("clear; rspec " . bufname("%")) - " Run command without sending a return - map rq :call VimuxRunCommand("clear; rspec " . bufname("%"), 0) -< - ------------------------------------------------------------------------------- - *VimuxSendText* -VimuxSendText~ - -Send raw text to the runer pane. This command will not open a new pane if one -does not already exist. You will need to use VimuxOpenPane to do this. This -command can be used to interact with REPLs or other interactive terminal -programs that are not shells. - - ------------------------------------------------------------------------------- - *VimuxSendKeys* -VimuxSendKeys~ - -Send keys to the runner pane. This command will not open a new pane if one -does not already exist. You will need to use VimuxOpenPane to do this. You can -use this command to send keys such as "Enter" or "C-c" to the runner pane. - ------------------------------------------------------------------------------- - *VimuxOpenPane* -VimuxOpenPane~ - -This will either open a new pane or use the nearest pane and set it as the -vimux runner pane for the other vimux commands. You can control if this command -uses the nearest pane or always creates a new one with g:VimuxUseNearest - ------------------------------------------------------------------------------- - *VimuxPromptCommand* -VimuxPromptCommand~ - -Prompt for a command and run it in a small horizontal split bellow the current -pane. A parameter can be supplied to predefine a command or a part of the -command which can be edited in the prompt. -> - " Prompt for a command to run map - map vp :VimuxPromptCommand - map vm :VimuxPromptCommand("make ") -< - ------------------------------------------------------------------------------- - *VimuxRunLastCommand* -VimuxRunLastCommand~ - -Run the last command executed by `VimuxRunCommand` -> - " Run last command executed by VimuxRunCommand - map vl :VimuxRunLastCommand -< - ------------------------------------------------------------------------------- - *VimuxInspectRunner* -VimuxInspectRunner~ - -Move into the tmux runner pane created by `VimuxRunCommand` and enter copy -pmode (scroll mode). -> - " Inspect runner pane map - map vi :VimuxInspectRunner -< - ------------------------------------------------------------------------------- - *VimuxCloseRunner* -VimuxCloseRunner~ - -Close the tmux runner created by `VimuxRunCommand` -> - " Close vim tmux runner opened by VimuxRunCommand - map vq :VimuxCloseRunner -< - ------------------------------------------------------------------------------- - *VimuxInterruptRunner* -VimuxInterruptRunner~ - -Interrupt any command that is running inside the -runner pane. -> - " Interrupt any command running in the runner pane map - map vs :VimuxInterruptRunner -< - - - ------------------------------------------------------------------------------- - *VimuxClearRunnerHistory* -VimuxClearRunnerHistory~ - -Clear the tmux history of the runner pane for when -you enter tmux scroll mode inside the runner pane. -> - " Clear the tmux history of the runner pane - map vc :VimuxClearRunnerHistory -< - ------------------------------------------------------------------------------- - *VimuxZoomRunner* -VimuxZoomRunner~ - -Zoom the runner pane. Once its zoomed, you will need -to use tmux " z" to restore the runner pane. -Zoom requires tmux version >= 1.8 -> - - " Zoom the tmux runner page - map vz :VimuxZoomRunner -< - ------------------------------------------------------------------------------- - *VimuxRunCommandInDir* -VimuxRunCommandInDir~ - -Runs the specified command inside the directory of -the currently opened file. Takes two arguments. command and inFile - -command: The command to run -inFile: If 1 the filename will be appended to the command -> - - " Compile currently opened latex file to pdf - autocmd Filetype tex nnoremap rr :update:call VimuxRunCommandInDir('latexmk -pdf', 1) - " Push the repository of the currently opened file - nnoremap gp :call VimuxRunCommandInDir("git push", 0) -< - -============================================================================== -MISC (3) *VimuxMisc* - ------------------------------------------------------------------------------- - *VimuxExampleKeybinding* -Full Keybind Example~ - -> - " Run the current file with rspec - map rb :call VimuxRunCommand("clear; rspec " . bufname("%")) - - " Prompt for a command to run - map vp :VimuxPromptCommand - - " Run last command executed by VimuxRunCommand - map vl :VimuxRunLastCommand - - " Inspect runner pane - map vi :VimuxInspectRunner - - " Close vim tmux runner opened by VimuxRunCommand - map vq :VimuxCloseRunner - - " Interrupt any command running in the runner pane - map vx :VimuxInterruptRunner - - " Zoom the runner pane (use z to restore runner pane) - map vz :call VimuxZoomRunner() -> - ------------------------------------------------------------------------------- - *VimuxTslimeReplacement* -Vimux as tslime replacement~ - -Here is how to use vimux to send code to a REPL. This is similar to tslime. -First, add some helpful mappings. - -> - function! VimuxSlime() - call VimuxSendText(@v) - call VimuxSendKeys("Enter") - endfunction - - " If text is selected, save it in the v buffer and send that buffer it to tmux - vmap vs "vy :call VimuxSlime() - - " Select current paragraph and send it to tmux - nmap vs vipvs -< - -Now, open a clojure file. Let's say your leader is backslash (\). Type \vp, -and then type lein repl at the prompt. This opens a tmux split running a REPL. -Then, select text or put the cursor on a function and type \vs. This will send -it to the REPL and evaluate it. The reason we pass `0` to `VimuxRunCommand` -is to stop the normal return that is sent to the runner pane and use our own -new line so the clojure REPL will evaluate the selected text without adding an -extra return. Thanks to @trptcolin for discovering this issue. - - -============================================================================== -CONFIGURATION (4) *VimuxConfiguration* - -You can configure Vimux like this: - ------------------------------------------------------------------------------- - *VimuxConfiguration_height* -2.1 g:VimuxHeight~ - -The percent of the screen the split pane Vimux will spawn should take up. - - let g:VimuxHeight = "40" - -Default: "20" - ------------------------------------------------------------------------------- - *VimuxConfiguration_orientation* -2.2 g:VimuxOrientation~ - -The default orientation of the split tmux pane. This tells tmux to make the -pane either vertically or horizontally, which is backward from how Vim handles -creating splits. - - let g:VimuxOrientation = "h" - -Options: - "v": vertical - "h": horizontal - -Default: "v" - ------------------------------------------------------------------------------- - *VimuxConfiguration_use_nearest* -2.3 g:VimuxUseNearest - -Use exising pane or window (not used by vim) if found instead of running -split-window. - - let VimuxUseNearest = 1 - -Default: 1 - ------------------------------------------------------------------------------- - *VimuxConfiguration_reset_sequence* -2.4 g:VimuxResetSequence~ - -The keys sent to the runner pane before running a command. By default it sends -`q` to make sure the pane is not in scroll-mode and `C-u` to clear the line. - - let VimuxResetSequence = "" - -Default: "q C-u" - ------------------------------------------------------------------------------- - *VimuxPromptString* -2.5 g:VimuxPromptString~ - -The string presented in the vim command line when Vimux is invoked. Be sure -to put a space at the end of the string to allow for distinction between -the prompt and your input. - - let g:VimuxPromptString = "" - -Default: "Command? " - ------------------------------------------------------------------------------- - *VimuxRunnerType* -2.6 g:VimuxRunnerType~ - -The type of view object Vimux should use for the runner. For reference, a -tmux session is a group of windows, and a window is a layout of panes. - - let g:VimuxRunnerType = "window" - -Options: - "pane": for panes - "window": for windows - -Default: "pane" - -============================================================================== -vim:tw=78:ts=2:sw=2:expandtab:ft=help:norl: diff --git a/dot_vim/bundle/vimux.git/dot_gitignore b/dot_vim/bundle/vimux.git/dot_gitignore deleted file mode 100644 index 926ccaa..0000000 --- a/dot_vim/bundle/vimux.git/dot_gitignore +++ /dev/null @@ -1 +0,0 @@ -doc/tags diff --git a/dot_vim/bundle/vimux.git/plugin/vimux.vim b/dot_vim/bundle/vimux.git/plugin/vimux.vim deleted file mode 100644 index 12ae004..0000000 --- a/dot_vim/bundle/vimux.git/plugin/vimux.vim +++ /dev/null @@ -1,198 +0,0 @@ -if exists("g:loaded_vimux") || &cp - finish -endif -let g:loaded_vimux = 1 - -command -nargs=* VimuxRunCommand :call VimuxRunCommand() -command VimuxRunLastCommand :call VimuxRunLastCommand() -command VimuxCloseRunner :call VimuxCloseRunner() -command VimuxZoomRunner :call VimuxZoomRunner() -command VimuxInspectRunner :call VimuxInspectRunner() -command VimuxScrollUpInspect :call VimuxScrollUpInspect() -command VimuxScrollDownInspect :call VimuxScrollDownInspect() -command VimuxInterruptRunner :call VimuxInterruptRunner() -command -nargs=? VimuxPromptCommand :call VimuxPromptCommand() -command VimuxClearRunnerHistory :call VimuxClearRunnerHistory() -command VimuxTogglePane :call VimuxTogglePane() - -function! VimuxRunCommandInDir(command, useFile) - let l:file = "" - if a:useFile ==# 1 - let l:file = shellescape(expand('%:t'), 1) - endif - call VimuxRunCommand("cd ".shellescape(expand('%:p:h'), 1)." && ".a:command." ".l:file." && cd - > /dev/null") -endfunction - -function! VimuxRunLastCommand() - if exists("g:VimuxRunnerIndex") - call VimuxRunCommand(g:VimuxLastCommand) - else - echo "No last vimux command." - endif -endfunction - -function! VimuxRunCommand(command, ...) - if !exists("g:VimuxRunnerIndex") || _VimuxHasRunner(g:VimuxRunnerIndex) == -1 - call VimuxOpenRunner() - endif - - let l:autoreturn = 1 - if exists("a:1") - let l:autoreturn = a:1 - endif - - let resetSequence = _VimuxOption("g:VimuxResetSequence", "q C-u") - let g:VimuxLastCommand = a:command - - call VimuxSendKeys(resetSequence) - call VimuxSendText(a:command) - - if l:autoreturn == 1 - call VimuxSendKeys("Enter") - endif -endfunction - -function! VimuxSendText(text) - call VimuxSendKeys('"'.escape(a:text, '"$').'"') -endfunction - -function! VimuxSendKeys(keys) - if exists("g:VimuxRunnerIndex") - call system("tmux send-keys -t ".g:VimuxRunnerIndex." ".a:keys) - else - echo "No vimux runner pane/window. Create one with VimuxOpenRunner" - endif -endfunction - -function! VimuxOpenRunner() - let nearestIndex = _VimuxNearestIndex() - - if _VimuxOption("g:VimuxUseNearest", 1) == 1 && nearestIndex != -1 - let g:VimuxRunnerIndex = nearestIndex - else - if _VimuxRunnerType() == "pane" - let height = _VimuxOption("g:VimuxHeight", 20) - let orientation = _VimuxOption("g:VimuxOrientation", "v") - call system("tmux split-window -p ".height." -".orientation) - elseif _VimuxRunnerType() == "window" - call system("tmux new-window") - endif - - let g:VimuxRunnerIndex = _VimuxTmuxIndex() - call system("tmux last-"._VimuxRunnerType()) - endif -endfunction - -function! VimuxCloseRunner() - if exists("g:VimuxRunnerIndex") - call system("tmux kill-"._VimuxRunnerType()." -t ".g:VimuxRunnerIndex) - unlet g:VimuxRunnerIndex - endif -endfunction - -function! VimuxTogglePane() - if exists("g:VimuxRunnerIndex") - if _VimuxRunnerType() == "window" - call system("tmux join-pane -d -s ".g:VimuxRunnerIndex." -p "._VimuxOption("g:VimuxHeight", 20)) - let g:VimuxRunnerType = "pane" - elseif _VimuxRunnerType() == "pane" - let g:VimuxRunnerIndex=substitute(system("tmux break-pane -d -t ".g:VimuxRunnerIndex." -P -F '#{window_index}'"), "\n", "", "") - let g:VimuxRunnerType = "window" - endif - endif -endfunction - -function! VimuxZoomRunner() - if exists("g:VimuxRunnerIndex") - if _VimuxRunnerType() == "pane" - call system("tmux resize-pane -Z -t ".g:VimuxRunnerIndex) - elseif _VimuxRunnerType() == "window" - call system("tmux select-window -t ".g:VimuxRunnerIndex) - endif - endif -endfunction - -function! VimuxInspectRunner() - call system("tmux select-"._VimuxRunnerType()." -t ".g:VimuxRunnerIndex) - call system("tmux copy-mode") -endfunction - -function! VimuxScrollUpInspect() - call VimuxInspectRunner() - call system("tmux last-"._VimuxRunnerType()) - call VimuxSendKeys("C-u") -endfunction - -function! VimuxScrollDownInspect() - call VimuxInspectRunner() - call system("tmux last-"._VimuxRunnerType()) - call VimuxSendKeys("C-d") -endfunction - -function! VimuxInterruptRunner() - call VimuxSendKeys("^c") -endfunction - -function! VimuxClearRunnerHistory() - if exists("g:VimuxRunnerIndex") - call system("tmux clear-history -t ".g:VimuxRunnerIndex) - endif -endfunction - -function! VimuxPromptCommand(...) - let command = a:0 == 1 ? a:1 : "" - let l:command = input(_VimuxOption("g:VimuxPromptString", "Command? "), command) - call VimuxRunCommand(l:command) -endfunction - -function! _VimuxTmuxSession() - return _VimuxTmuxProperty("#S") -endfunction - -function! _VimuxTmuxIndex() - if _VimuxRunnerType() == "pane" - return _VimuxTmuxPaneIndex() - else - return _VimuxTmuxWindowIndex() - end -endfunction - -function! _VimuxTmuxPaneIndex() - return _VimuxTmuxProperty("#I.#P") -endfunction - -function! _VimuxTmuxWindowIndex() - return _VimuxTmuxProperty("#I") -endfunction - -function! _VimuxNearestIndex() - let views = split(system("tmux list-"._VimuxRunnerType()."s"), "\n") - - for view in views - if match(view, "(active)") == -1 - return split(view, ":")[0] - endif - endfor - - return -1 -endfunction - -function! _VimuxRunnerType() - return _VimuxOption("g:VimuxRunnerType", "pane") -endfunction - -function! _VimuxOption(option, default) - if exists(a:option) - return eval(a:option) - else - return a:default - endif -endfunction - -function! _VimuxTmuxProperty(property) - return substitute(system("tmux display -p '".a:property."'"), '\n$', '', '') -endfunction - -function! _VimuxHasRunner(index) - return match(system("tmux list-"._VimuxRunnerType()."s -a"), a:index.":") -endfunction diff --git a/dot_vim/ftplugin/lisp/limp.vim b/dot_vim/ftplugin/lisp/limp.vim deleted file mode 100644 index 8c5a2ec..0000000 --- a/dot_vim/ftplugin/lisp/limp.vim +++ /dev/null @@ -1,53 +0,0 @@ -" -" limp/vim/limp.vim -" -" URL: -" http://mikael.jansson.be/hacking -" -" Description: -" Setup the Limp environment -" -" Version: -" 0.2 -" -" Date: -" 2008-04-28 -" -" Authors: -" Mikael Jansson -" -" Changelog: -" * 2008-04-28 by Mikael Jansson -" Only change colorscheme and nocompatible when not previously set. -" -" * 2008-04-25 by Mikael Jansson -" Catch-all key for Lisp boot, connect & display -" -" * 2008-04-20 by Mikael Jansson -" Initial version. - -"------------------------------------------------------------------- - -if exists("b:did_ftplugin") - finish -endif -let b:did_ftplugin = 1 - -"------------------------------------------------------------------- -" external dependencies -"------------------------------------------------------------------- -silent! runtime plugin/matchit.vim - -"------------------------------------------------------------------- -" the Limp library -"------------------------------------------------------------------- - -runtime ftplugin/lisp/limp/cursor.vim -runtime ftplugin/lisp/limp/highlight.vim -runtime ftplugin/lisp/limp/sexp.vim -runtime ftplugin/lisp/limp/bridge.vim -runtime ftplugin/lisp/limp/autoclose.vim -runtime ftplugin/lisp/limp/keys.vim -runtime ftplugin/lisp/limp/mode.vim - - diff --git a/dot_vim/ftplugin/lisp/limp/autoclose.vim b/dot_vim/ftplugin/lisp/limp/autoclose.vim deleted file mode 100644 index c00ec29..0000000 --- a/dot_vim/ftplugin/lisp/limp/autoclose.vim +++ /dev/null @@ -1,208 +0,0 @@ -" -" limp/vim/autoclose.vim -" -" URL: -" http://mikael.jansson.be/hacking -" -" Description: -" AutoClose, closes what's opened. -" -" This plugin closes opened parenthesis, braces, brackets, quotes as you -" type them. As of 1.1, if you type the open brace twice ({{), the closing -" brace will be pushed down to a new line. -" -" You can enable or disable this plugin by typing \a (or a if -" you've redefined your leader character) in normal mode. You'll also -" probably want to know you can type ( if mswin is set) and the next -" character you type doesn't have mappings applied. This is useful when you -" want to insert only an opening paren or something. -" -" Version: -" 0.2 -" -" Date: -" September 20, 2007 -" -" Authors: -" Karl Guertin -" Mikael Jansson -" -" Changelog: -" 2008-04-20 by Mikael Jansson -" * Factored out start/stop functions. -" * Removed the default mappings to toggle autoclose -" -" 2007-09-20 by Karl Guertin -" 1.1.2 -- Fixed a mapping typo and caught a double brace problem -" 1.1.1 -- Missed a bug in 1.1, September 19, 2007 -" 1.1 -- When not inserting at the end, previous version would eat chars -" at end of line, added double open->newline, September 19, 2007 -" 1.0.1 -- Cruft from other parts of the mapping, knew I shouldn't have -" released the first as 1.0, April 3, 2007 - -" Setup -----------------------------------------------------{{{1 - -let s:omni_active = 0 -let s:cotstate = &completeopt - -if !exists('g:autoclose_on') - let g:autoclose_on = 0 -endif - -" assume everything has been defined already if one of the functions are -" defined. -if exists("*AutoClose_start") - finish -endif - -if !exists("*AutoClose_stop") -fun! AutoClose_stop() - if g:autoclose_on - iunmap " - iunmap ( - iunmap ) - iunmap [ - iunmap ] - iunmap { - iunmap } - iunmap - iunmap - iunmap - ""iunmap - let g:autoclose_on = 0 - endif -endfun -endif - -if !exists("*AutoClose_start") -fun! AutoClose_start() - if !g:autoclose_on - inoremap " =QuoteDelim('"') - inoremap ( (=CloseStackPush(')') - inoremap ) =CloseStackPop(')') - inoremap [ [=CloseStackPush(']') - inoremap ] =CloseStackPop(']') - inoremap { =OpenSpecial('{','}') - inoremap } =CloseStackPop('}') - inoremap =OpenCloseBackspace() - inoremap =OpenCloseBackspace() - inoremap =CloseStackPop('') - inoremap =CloseStackPop('') - let g:autoclose_on = 1 - endif -endfunction -endif -let s:closeStack = [] - -" AutoClose Utilities -----------------------------------------{{{1 -if !exists("*OpenSpecial") -function OpenSpecial(ochar,cchar) " ---{{{2 - let line = getline('.') - let col = col('.') - 2 - "echom string(col).':'.line[:(col)].'|'.line[(col+1):] - if a:ochar == line[(col)] && a:cchar == line[(col+1)] "&& strlen(line) - (col) == 2 - "echom string(s:closeStack) - while len(s:closeStack) > 0 - call remove(s:closeStack, 0) - endwhile - return "\a\a\".a:cchar."\\"_xk$\"_xa" - endif - return a:ochar.CloseStackPush(a:cchar) -endfunction -endif - -if !exists("*CloseStackPush") -function CloseStackPush(char) " ---{{{2 - "echom "push" - let line = getline('.') - let col = col('.')-2 - if (col) < 0 - call setline('.',a:char.line) - else - "echom string(col).':'.line[:(col)].'|'.line[(col+1):] - call setline('.',line[:(col)].a:char.line[(col+1):]) - endif - call insert(s:closeStack, a:char) - "echom join(s:closeStack,'').' -- '.a:char - return '' -endfunction -endif - -if !exists("*CloseStackPop") -function CloseStackPop(char) " ---{{{2 - "echom "pop" - if len(s:closeStack) == 0 - return a:char - endif - let popped = '' - let lastpop = '' - "echom join(s:closeStack,'').' || '.lastpop - while len(s:closeStack) > 0 && ((lastpop == '' && popped == '') || lastpop != a:char) - let lastpop = remove(s:closeStack,0) - let popped .= lastpop - "echom join(s:closeStack,'').' || '.lastpop.' || '.popped - endwhile - "echom ' --> '.popped - let col = col('.') - 2 - let line = getline('.') - let splits = split(line[:col],popped,1) - "echom string(splits) - "echom col.' '.line[(col+2):].' '.popped - call setline('.',join(splits,popped).line[(col+strlen(popped)+1):]) - return popped -endfunction -endif - -if !exists("*QuoteDelim") -function QuoteDelim(char) " ---{{{2 - let line = getline('.') - let col = col('.') - if line[col - 2] == "\\" - "Inserting a quoted quotation mark into the string - return a:char - elseif line[col - 1] == a:char - "Escaping out of the string - return "\=".s:SID()."CloseStackPop(\"\\".a:char."\")\" - else - "Starting a string - return a:char."\=".s:SID()."CloseStackPush(\"\\".a:char."\")\" - endif -endfunction -endif - -" The strings returned from QuoteDelim aren't in scope for , so I -" have to fake it using this function (from the Vim help, but tweaked) -" -if !exists("*s:SID") -function s:SID() - return matchstr(expand(''), '\d\+_\zeSID$') -endfun -endif - -if !exists("*OpenCloseBackspace") -function OpenCloseBackspace() " ---{{{2 - "if pumvisible() - " pclose - " call StopOmni() - " return "\" - "else - let curline = getline('.') - let curpos = col('.') - let curletter = curline[curpos-1] - let prevletter = curline[curpos-2] - if (prevletter == '"' && curletter == '"') || -\ (prevletter == "'" && curletter == "'") || -\ (prevletter == "(" && curletter == ")") || -\ (prevletter == "{" && curletter == "}") || -\ (prevletter == "[" && curletter == "]") - if len(s:closeStack) > 0 - call remove(s:closeStack,0) - endif - return "\\" - else - return "\" - endif - "endif -endf -endif - diff --git a/dot_vim/ftplugin/lisp/limp/bridge.vim b/dot_vim/ftplugin/lisp/limp/bridge.vim deleted file mode 100644 index f8e0fb1..0000000 --- a/dot_vim/ftplugin/lisp/limp/bridge.vim +++ /dev/null @@ -1,510 +0,0 @@ -" -" limp/vim/bridge.vim -" -" URL: -" http://mikael.jansson.be/hacking -" -" Description: -" Handle communication between Vim and Lisp, including boot, connect and -" display. Relies on 'lisp.sh' from the Limp package. -" -" Version: -" 0.2 -" -" Date: -" 2008-04-25 -" -" Authors: -" Mikael Jansson -" Larry Clapp - -" Changelog: -" 2008-08-26 by Mikael Jansson -" * Optionally specify core at startup and exit. -" -" 2008-08-25 by Mikael Jansson -" * Now boots a new Lisp or connects to an existing via screen. -" No longer needs the funnel (although it does need a file to read to/from -" screen: it doesn't seem as if 'stuff' can handle very large amounts of -" texts) -" -" 2008-08-18 by Mikael Jansson -" * Tab-completed prompt that lets you choose the Lisp process to connect to. -" Moved the startup to before the loaded check. - -"------------------------------------------------------------------- -" startup -"------------------------------------------------------------------- -" only do these things once - -let s:Limp_version="0.3.4" - -let s:Limp_location = expand("$LIMPRUNTIME") -"if s:Limp_location == "" || s:Limp_location == "$LIMPRUNTIME" -if !filereadable(s:Limp_location . "/vim/limp.vim") - let s:Limp_location = "/usr/local/limp/" . s:Limp_version -endif - -" prefix for the pipe used for communication -let s:limp_bridge_channel_base = $HOME . "/.limp_bridge_channel-" -let s:limp_bridge_connected=0 -exe "setlocal complete+=s" . s:Limp_location . "/vim/thesaurus" - -"------------------------------------------------------------------- -" talk to multiple Lisps using LimpBridge_connect() -"------------------------------------------------------------------- -fun! LimpBridge_complete_lisp(A,L,P) - let prefix = s:limp_bridge_channel_base - "echom "ls -1 ".prefix."*" - let output = system("ls -1 ".prefix."*") - if stridx(output, prefix."*") >= 0 - echom "No Lisps started yet?" - return - endif - let files = split(output, "\n") - let names = [] - for f in files - let names += [f[strlen(prefix):]] - endfor - return names -endfun - -" optionally specify the screen id to connect to -" -" return values: -" -" -1 if user didn't want to connect -" 0 if connection wasn't possible -" 1 if the user did connect -" 2 if the user was already connected -" -fun! LimpBridge_connect(...) - if s:limp_bridge_connected == 1 - echom "Already connected to Lisp!" - return 2 - endif - if a:0 == 1 && a:1 != "" - " format: 7213.limp_listener-foo - let pid = a:1[:stridx(a:1, '.')-1] - let fullname = a:1[stridx(a:1, '.')+1:] - let name = fullname[strlen("limp_listener-"):] - - let s:limp_bridge_channel = s:limp_bridge_channel_base.name.".".pid - else - let s:limp_bridge_channel = s:limp_bridge_channel_base - let name = input("Connect to [boot new]: ", "", "customlist,LimpBridge_complete_lisp") - if name == "" - return -1 - endif - let s:limp_bridge_channel .= name - if 0 == filewritable(s:limp_bridge_channel) "|| s:limp_bridge_channel = s:limp_bridge_channel_base - echom "Not a Limp channel." - return 0 - endif - endif - " extract the PID from format: foo.104982 - " (backward from screen sty naming to ease tab completion) - - " bridge id is the file used for communication between Vim and screen - let s:limp_bridge_id = strpart(s:limp_bridge_channel, strlen(s:limp_bridge_channel_base)) - - " bridge screenid is the screen in which the Lisp is running - let s:limp_bridge_screenid = s:limp_bridge_id[strridx(s:limp_bridge_id, '.')+1:] - "let s:limp_bridge_scratch = $HOME . "/.limp_bridge_scratch-" . s:limp_bridge_id - let s:limp_bridge_test = $HOME . '/.limp_bridge_test-' . s:limp_bridge_id - - silent exe "new" s:limp_bridge_channel - if exists( "#BufEnter#*.lisp#" ) - doauto BufEnter x.lisp - endif - setlocal syntax=lisp - " XXX: in ViLisp, buftype=nowrite, but w/ limp_bridge_channel, vim - " complains about the file being write-only. - "setlocal buftype=nowrite - setlocal bufhidden=hide - setlocal nobuflisted - setlocal noswapfile - hide - - silent exe "new" s:limp_bridge_test - if exists( "#BufEnter#*.lisp#" ) - doauto BufEnter x.lisp - endif - setlocal syntax=lisp - " setlocal buftype=nofile - setlocal bufhidden=hide - setlocal nobuflisted - " setlocal noswapfile - hide - - " hide from the user that we created and deleted (hid, really) a couple of - " buffers - "normal! - redraw - - let s:limp_bridge_connected=1 - - echom "Welcome to Limp. May your journey be pleasant." - - return 1 -endfun - -fun! LimpBridge_connection_status() - if s:limp_bridge_connected == 1 - return "Connected to ".s:limp_bridge_id - else - return "Disconnected" - endif -endfun - -fun! LimpBridge_disconnect() - let s:limp_bridge_connected = 0 - let s:limp_bridge_id = "" -endfun - -" -" optionally, specify the path of the core to save to -" -fun! LimpBridge_quit_lisp(...) - " we were given a file - if a:0 == 1 && a:1 != "" - let core = a:1 - call LimpBridge_send_to_lisp("(sb-ext:save-lisp-and-die \"".core."\")\n") - echom "Lisp ".s:limp_bridge_id." is gone, core saved to ".core."." - else - call LimpBridge_send_to_lisp("(sb-ext:quit)\n") - echom "Lisp ".s:limp_bridge_id." is gone." - endif - call LimpBridge_disconnect() -endfun - -fun! LimpBridge_shutdown_lisp() - if s:limp_bridge_connected == 1 - let core = input("Name of core to save [none]: ", "", "file") - call LimpBridge_quit_lisp(core) - else - echom "Not connected." - endif -endfun - -" -" when not connected, start new or connect to existing -" otherwise, switch to Lisp (screen) -fun! LimpBridge_boot_or_connect_or_display() - if s:limp_bridge_connected - " is it still running? - let status = system("screen -ls") - if stridx(status, s:limp_bridge_screenid) == -1 - call LimpBridge_disconnect() - return - endif - let cmd = "screen -x ".s:limp_bridge_screenid - if has("gui_running") || b:listener_always_open_window == 1 - let cmd = "xterm -e " . cmd - if b:listener_keep_open == 1 - let cmd .= " &" - endif - endif - silent exe "!".cmd - redraw! - else - " connect to a fresh Lisp - let what = LimpBridge_connect() - if what <= 0 - " user didn't want to connect, let's boot! - let name = input("Name the Lisp: ") - if strlen(name) == 0 - " give up - return - endif - - let core = input("Path to core to boot [use system-default]: ", "", "file") - let core_opt = "" - if filereadable(core) - let core_opt = "-c ".core - echom "Booting ".core."..." - else - echom "Booting..." - endif - let styfile = tempname() - let cmd = s:Limp_location . "/bin/lisp.sh ".core_opt."-s ".styfile." -b ".name - call system(cmd) - while getfsize(styfile) <= len("limp_listener") - sleep 200m - endwhile - " needs to be binary, or readfile() expects a newline... - let lines = readfile(styfile, 'b') - if len(lines) < 1 - echom "Error getting screen ID!" - return - endif - - let sty = lines[0] - call delete(styfile) - call LimpBridge_connect(sty) - call LimpBridge_boot_or_connect_or_display() - endif - endif -endfun - -augroup LimpBridge - au! - autocmd BufLeave .LimpBridge_* setlocal nobuflisted - autocmd BufLeave *.lisp let g:limp_bridge_last_lisp = bufname( "%" ) -augroup END - - -"------------------------------------------------------------------- -" plugin <-> function mappings -"------------------------------------------------------------------- - -nnoremap LimpBootConnectDisplay :call LimpBridge_boot_or_connect_or_display() -nnoremap LimpDisconnect :call LimpBridge_disconnect() -nnoremap LimpShutdownLisp :call LimpBridge_shutdown_lisp() - -nnoremap EvalTop :call LimpBridge_eval_top_form() -nnoremap EvalCurrent :call LimpBridge_eval_current_form() -nnoremap EvalExpression :call LimpBridge_prompt_eval_expression() - -vnoremap EvalBlock :call LimpBridge_eval_block() - -nnoremap AbortReset :call LimpBridge_send_to_lisp( "ABORT\n" ) -nnoremap AbortInterrupt :call LimpBridge_send_to_lisp( "" ) - -nnoremap TestCurrent :call LimpBridge_stuff_current_form() -nnoremap TestTop :call LimpBridge_stuff_top_form() - -nnoremap LoadThisFile :call LimpBridge_send_to_lisp( "(load \"" . expand( "%:p" ) . "\")\n") -nnoremap LoadAnyFile :call LimpBridge_send_to_lisp( "(load \"" . expand( "%:p:r" ) . "\")\n") - -nnoremap CompileFile :w! call LimpBridge_send_to_lisp("(compile-file \"".expand("%:p")."\")\n") - -" XXX: What's the proprer syntax for calling >1 Plug? -""nnoremap CompileAndLoadFile CompileFile LoadAnyFile -nnoremap CompileAndLoadFile :w! call LimpBridge_send_to_lisp("(compile-file \"".expand("%:p")."\")\n") call LimpBridge_send_to_lisp( "(load \"" . expand( "%:p:r" ) . "\")\n") - -" Goto Test Buffer: -" Goto Split: split current buffer and goto test buffer -nnoremap GotoTestBuffer :call LimpBridge_goto_buffer_or_window(g:limp_bridge_test) -nnoremap GotoTestBufferAndSplit :sb call LimpBridge_goto_buffer_or_window(g:limp_bridge_test) - -" Goto Last: return to g:limp_bridge_last_lisp, i.e. last buffer -nnoremap GotoLastLispBuffer :call LimpBridge_goto_buffer_or_window(g:limp_bridge_last_lisp) - -" HyperSpec: -nnoremap HyperspecExact :call LimpBridge_hyperspec("exact", 0) -nnoremap HyperspecPrefix :call LimpBridge_hyperspec("prefix", 1) -nnoremap HyperspecSuffix :call LimpBridge_hyperspec("suffix", 1) -nnoremap HyperspecGrep :call LimpBridge_hyperspec("grep", 1) -nnoremap HyperspecFirstLetterIndex :call LimpBridge_hyperspec("index", 0) -nnoremap HyperspecFullIndex :call LimpBridge_hyperspec("index-page", 0) - -" Help Describe: ask Lisp about the current symbol -nnoremap HelpDescribe :call LimpBridge_send_to_lisp("(describe '".expand("").")") - - -"------------------------------------------------------------------- -" library -"------------------------------------------------------------------- -" assume that all of the file has been loaded & defined once -" if one of the functions are defined. -if exists("*LimpBridge_goto_buffer_or_window") - finish -endif - -function! LimpBridge_goto_buffer_or_window( buff ) - if -1 == bufwinnr( a:buff ) - exe "hide bu" a:buff - else - exe bufwinnr( a:buff ) . "wincmd w" - endif -endfunction - - -function! LimpBridge_get_pos() - " what buffer are we in? - let bufnr = bufnr( "%" ) - - " get current position - let c_cur = virtcol( "." ) - let l_cur = line( "." ) - normal! H - let l_top = line( "." ) - - let pos = bufnr . "|" . l_top . "," . l_cur . "," . c_cur - - " go back - exe "normal! " l_cur . "G" . c_cur . "|" - - return( pos ) -endfunction - - -function! LimpBridge_goto_pos( pos ) - let mx = '\(\d\+\)|\(\d\+\),\(\d\+\),\(\d\+\)' - let bufnr = substitute( a:pos, mx, '\1', '' ) - let l_top = substitute( a:pos, mx, '\2', '' ) - let l_cur = substitute( a:pos, mx, '\3', '' ) - let c_cur = substitute( a:pos, mx, '\4', '' ) - - silent exe "hide bu" bufnr - silent exe "normal! " . l_top . "Gzt" . l_cur . "G" . c_cur . "|" -endfunction - - -function! LimpBridge_yank( motion ) - let value = '' - - let p = LimpBridge_get_pos() - silent! exec 'normal!' a:motion - let new_p = LimpBridge_get_pos() - - " did we move? - if p != new_p - " go back - silent! exec 'normal!' a:motion - - let old_l = @l - exec 'normal! "ly' . a:motion - let value = @l - let @l = old_l - endif - - call LimpBridge_goto_pos( p ) - - return( value ) -endfunction - - -" copy an expression to a buffer -function! LimpBridge_send_sexp_to_buffer( sexp, buffer ) - let p = LimpBridge_get_pos() - - " go to the given buffer, go to the bottom - exe "hide bu" a:buffer - silent normal! G - - " tried append() -- doesn't work the way I need it to - let old_l = @l - let @l = a:sexp - silent exe "put l" - " normal! "lp - let @l = old_l - - call LimpBridge_goto_pos( p ) -endfunction - - -" destroys contents of LimpBridge_channel buffer -function! LimpBridge_send_to_lisp( sexp ) - if a:sexp == '' - return - endif - - if !s:limp_bridge_connected - echom "Not connected to Lisp!" - return - endif - - let p = LimpBridge_get_pos() - - " goto LimpBridge_channel, delete it, put s-exp, write it to lisp - try - exe "hide bu" s:limp_bridge_channel - exe "%d" - normal! 1G - - " tried append() -- doesn't work the way I need it to - let old_l = @l - let @l = a:sexp - normal! "lP - let @l = old_l - - silent exe 'w!' - call system('screen -x '.s:limp_bridge_screenid.' -p 0 -X eval "readbuf" "paste ."') - catch /^Vim:E211:/ - echom "Lisp is gone!" - " file not available, Lisp disappeared - call LimpBridge_disconnect() - endtry - - call LimpBridge_goto_pos( p ) -endfunction - -function! LimpBridge_prompt_eval_expression() - let whatwhat = input("Eval: ") - call LimpBridge_send_to_lisp(whatwhat) -endfun - - -" Actually evals current top level form -function! LimpBridge_eval_top_form() - " save position - let p = LimpBridge_get_pos() - - silent! exec "normal! 99[(" - call LimpBridge_send_to_lisp( LimpBridge_yank( "%" ) ) - - " fix cursor position, in case of error below - call LimpBridge_goto_pos( p ) -endfunction - - -function! LimpBridge_eval_current_form() - " save position - let pos = LimpBridge_get_pos() - - " find & yank current s-exp - normal! [( - let sexp = LimpBridge_yank( "%" ) - call LimpBridge_send_to_lisp( sexp ) - call LimpBridge_goto_pos( pos ) -endfunction - - -function! LimpBridge_eval_block() range - " save position - let pos = LimpBridge_get_pos() - - " yank current visual block - let old_l = @l - '<,'> yank l - let sexp = @l - let @l = old_l - - call LimpBridge_send_to_lisp( sexp ) - call LimpBridge_goto_pos( pos ) -endfunction - - -function! LimpBridge_stuff_current_form() - " save position - let pos = LimpBridge_get_pos() - - " find & yank current s-exp - normal! [( - call LimpBridge_send_sexp_to_buffer( LimpBridge_yank( "%" ), s:limp_bridge_test ) - - call LimpBridge_goto_pos( pos ) -endfunction - -function! LimpBridge_stuff_top_form() - " save position - let pos = LimpBridge_get_pos() - - " find & yank top-level s-exp - silent! exec "normal! 99[(" - call LimpBridge_send_sexp_to_buffer( LimpBridge_yank( "%" ), s:limp_bridge_test ) - - call LimpBridge_goto_pos( pos ) -endfunction - -function! LimpBridge_hyperspec(type, make_page) - " get current word under cursor - let word = expand( "" ) - let cmd = "! perl " . s:Limp_location . "/bin/limp-hyperspec.pl" - let cmd = cmd . " " . a:type . " " . a:make_page . " '" . word . "'" - silent! exe cmd - redraw! -endfunction - diff --git a/dot_vim/ftplugin/lisp/limp/cursor.vim b/dot_vim/ftplugin/lisp/limp/cursor.vim deleted file mode 100644 index 2890f8f..0000000 --- a/dot_vim/ftplugin/lisp/limp/cursor.vim +++ /dev/null @@ -1,207 +0,0 @@ -" -" limp/vim/cursor.vim -" -" URL: -" http://mikael.jansson.be/hacking -" -" Description: -" Save/restore cursor position in window (mostly obsoleted by Vim7 though) -" -" Version: -" 0.2 -" -" Date: -" 2008-04-25 -" -" Authors: -" Mikael Jansson -" Charles E. Campbell, Jr. -NOSPAM -" -" Changelog: -" 2008-04-18 -" * Removed all leader mappings -" -" Usage: -" call Cursor_push() -" let cursor = Cursor_get() -" -" call Cursor_pop() -" call Cursor_set(cursor) -" - -" Load Once: {{{1 - -let s:keepcpo = &cpo -set cpo&vim - -" ----------------------- -" Public Interface: {{{1 -" ----------------------- -let s:modifier= "sil keepj " - - -" assume that all of the file has been loaded & defined once -" if one of the functions are defined. -if exists("*Cursor_get") - finish -endif - -" Cursor_get: {{{1 -" Return the current cursor (as an executable command!) -" -fun! Cursor_get() - if line(".") == 1 && getline(1) == "" - return "" - endif - - " disable various scrolling trickery - let so_keep = &so - let siso_keep = &siso - let ss_keep = &ss - set so=0 siso=0 ss=0 - - let swline = line(".") - let swcol = col(".") - let swwline = winline() - 1 - let swwcol = virtcol(".") - wincol() - let cursordata = "call Window_goto_by_buffer_number(".winbufnr(0).")|silent ".swline - let cursordata = cursordata."|".s:modifier."norm! 0z\" - if swwline > 0 - let cursordata = cursordata.":".s:modifier."norm! ".swwline."\\" - endif - if swwcol > 0 - let cursordata = cursordata.":".s:modifier."norm! 0".swwcol."zl\" - endif - let cursordata = cursordata.":".s:modifier."call cursor(".swline.",".swcol.")\" - - " restore scrolling flags - let &so = so_keep - let &siso = siso_keep - let &ss = ss_keep - - return cursordata -endfun - -" Cursor_set: {{{1 -" Set the current cursor to an old one -" -fun! Cursor_set(cursordata) - exe "silent ".a:cursordata -endfun - - -" --------------------------------------------------------------------- -" Cursor_push {{{1 -" let cursor = Cursor_push() save window position in b:cursor_position_{b:cursor_position_index} -" and return cursor. -fun! Cursor_push(...) - let cursordata = Cursor_get() - - " save window position in - " b:cursor_position_{b:cursor_position_index} (stack) - if !exists("b:cursor_position_index") - let b:cursor_position_index= 1 - else - let b:cursor_position_index = b:cursor_position_index + 1 - endif - - let b:cursor_position_{b:cursor_position_index} = cursordata - - return cursordata -endfun - -" --------------------------------------------------------------------- -" Cursor_pop: {{{1 -fun! Cursor_pop() - if line(".") == 1 && getline(1) == "" - return "" - endif - let so_keep = &so - let siso_keep = &siso - let ss_keep = &ss - set so=0 siso=0 ss=0 - - " use saved window position in b:cursor_position_{b:cursor_position_index} if it exists - if exists("b:cursor_position_index") && exists("b:cursor_position_{b:cursor_position_index}") - try - exe "silent! ".b:cursor_position_{b:cursor_position_index} - catch /^Vim\%((\a\+)\)\=:E749/ - " ignore empty buffer error messages - endtry - " normally drop top-of-stack by one - " but while new top-of-stack doesn't exist - " drop top-of-stack index by one again - if b:cursor_position_index >= 1 - unlet b:cursor_position_{b:cursor_position_index} - let b:cursor_position_index= b:cursor_position_index - 1 - while b:cursor_position_index >= 1 && !exists("b:cursor_position_{b:cursor_position_index}") - let b:cursor_position_index= b:cursor_position_index - 1 - endwhile - if b:cursor_position_index < 1 - unlet b:cursor_position_index - endif - endif - else - echohl WarningMsg - echomsg "***warning*** need to cursor_save() first!" - echohl None - endif - - " seems to be something odd: vertical motions after RWP - " cause jump to first column. Following fixes that - if wincol() > 1 - silent norm! hl - elseif virtcol(".") < virtcol("$") - silent norm! lh - endif - - let &so = so_keep - let &siso = siso_keep - let &ss = ss_keep -endfun - -" --------------------------------------------------------------------- -" Window_goto_by_buffer_number: go to window holding given buffer (by number) {{{1 -" Prefers current window; if its buffer number doesn't match, -" then will try from topleft to bottom right -fun! Window_goto_by_buffer_number(bufnum) - if winbufnr(0) == a:bufnum - return - endif - winc t - let first=1 - while winbufnr(0) != a:bufnum && (first || winnr() != 1) - winc w - let first= 0 - endwhile -endfun - - -" --------------------------------------------------------------------- -" ListWinPosn: -"fun! ListWinPosn() " Decho -" if !exists("b:cursor_position_index") || b:cursor_position_index == 0 " Decho -" call Decho("nothing on SWP stack") " Decho -" else " Decho -" let jwinposn= b:cursor_position_index " Decho -" while jwinposn >= 1 " Decho -" if exists("b:cursor_position{jwinposn}") " Decho -" call Decho("winposn{".jwinposn."}<".b:cursor_position{jwinposn}.">") " Decho -" else " Decho -" call Decho("winposn{".jwinposn."} -- doesn't exist") " Decho -" endif " Decho -" let jwinposn= jwinposn - 1 " Decho -" endwhile " Decho -" endif " Decho -"endfun " Decho -"com! -nargs=0 LWP call ListWinPosn() " Decho - - -" --------------------------------------------------------------------- -" Restore: {{{1 -let &cpo = s:keepcpo -unlet s:keepcpo - -" --------------------------------------------------------------------- -" Modelines: {{{1 -" vim: ts=4 fdm=marker diff --git a/dot_vim/ftplugin/lisp/limp/desert256.vim b/dot_vim/ftplugin/lisp/limp/desert256.vim deleted file mode 100644 index 7a97742..0000000 --- a/dot_vim/ftplugin/lisp/limp/desert256.vim +++ /dev/null @@ -1,338 +0,0 @@ -" Vim color file -" Maintainer: Henry So, Jr. - -" These are the colors of the "desert" theme by Hans Fugal with a few small -" modifications (namely that I lowered the intensity of the normal white and -" made the normal and nontext backgrounds black), modified to work with 88- -" and 256-color xterms. -" -" The original "desert" theme is available as part of the vim distribution or -" at http://hans.fugal.net/vim/colors/. -" -" The real feature of this color scheme, with a wink to the "inkpot" theme, is -" the programmatic approximation of the gui colors to the palettes of 88- and -" 256- color xterms. The functions that do this (folded away, for -" readability) are calibrated to the colors used for Thomas E. Dickey's xterm -" (version 200), which is available at http://dickey.his.com/xterm/xterm.html. -" -" I struggled with trying to parse the rgb.txt file to avoid the necessity of -" converting color names to #rrggbb form, but decided it was just not worth -" the effort. Maybe someone seeing this may decide otherwise... - -set background=dark -if version > 580 - " no guarantees for version 5.8 and below, but this makes it stop - " complaining - hi clear - if exists("syntax_on") - syntax reset - endif -endif -let g:colors_name="desert256" - -if has("gui_running") || &t_Co == 88 || &t_Co == 256 - " functions {{{ - " returns an approximate grey index for the given grey level - fun grey_number(x) - if &t_Co == 88 - if a:x < 23 - return 0 - elseif a:x < 69 - return 1 - elseif a:x < 103 - return 2 - elseif a:x < 127 - return 3 - elseif a:x < 150 - return 4 - elseif a:x < 173 - return 5 - elseif a:x < 196 - return 6 - elseif a:x < 219 - return 7 - elseif a:x < 243 - return 8 - else - return 9 - endif - else - if a:x < 14 - return 0 - else - let l:n = (a:x - 8) / 10 - let l:m = (a:x - 8) % 10 - if l:m < 5 - return l:n - else - return l:n + 1 - endif - endif - endif - endfun - - " returns the actual grey level represented by the grey index - fun grey_level(n) - if &t_Co == 88 - if a:n == 0 - return 0 - elseif a:n == 1 - return 46 - elseif a:n == 2 - return 92 - elseif a:n == 3 - return 115 - elseif a:n == 4 - return 139 - elseif a:n == 5 - return 162 - elseif a:n == 6 - return 185 - elseif a:n == 7 - return 208 - elseif a:n == 8 - return 231 - else - return 255 - endif - else - if a:n == 0 - return 0 - else - return 8 + (a:n * 10) - endif - endif - endfun - - " returns the palette index for the given grey index - fun grey_color(n) - if &t_Co == 88 - if a:n == 0 - return 16 - elseif a:n == 9 - return 79 - else - return 79 + a:n - endif - else - if a:n == 0 - return 16 - elseif a:n == 25 - return 231 - else - return 231 + a:n - endif - endif - endfun - - " returns an approximate color index for the given color level - fun rgb_number(x) - if &t_Co == 88 - if a:x < 69 - return 0 - elseif a:x < 172 - return 1 - elseif a:x < 230 - return 2 - else - return 3 - endif - else - if a:x < 75 - return 0 - else - let l:n = (a:x - 55) / 40 - let l:m = (a:x - 55) % 40 - if l:m < 20 - return l:n - else - return l:n + 1 - endif - endif - endif - endfun - - " returns the actual color level for the given color index - fun rgb_level(n) - if &t_Co == 88 - if a:n == 0 - return 0 - elseif a:n == 1 - return 139 - elseif a:n == 2 - return 205 - else - return 255 - endif - else - if a:n == 0 - return 0 - else - return 55 + (a:n * 40) - endif - endif - endfun - - " returns the palette index for the given R/G/B color indices - fun rgb_color(x, y, z) - if &t_Co == 88 - return 16 + (a:x * 16) + (a:y * 4) + a:z - else - return 16 + (a:x * 36) + (a:y * 6) + a:z - endif - endfun - - " returns the palette index to approximate the given R/G/B color levels - fun color(r, g, b) - " get the closest grey - let l:gx = grey_number(a:r) - let l:gy = grey_number(a:g) - let l:gz = grey_number(a:b) - - " get the closest color - let l:x = rgb_number(a:r) - let l:y = rgb_number(a:g) - let l:z = rgb_number(a:b) - - if l:gx == l:gy && l:gy == l:gz - " there are two possibilities - let l:dgr = grey_level(l:gx) - a:r - let l:dgg = grey_level(l:gy) - a:g - let l:dgb = grey_level(l:gz) - a:b - let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) - let l:dr = rgb_level(l:gx) - a:r - let l:dg = rgb_level(l:gy) - a:g - let l:db = rgb_level(l:gz) - a:b - let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) - if l:dgrey < l:drgb - " use the grey - return grey_color(l:gx) - else - " use the color - return rgb_color(l:x, l:y, l:z) - endif - else - " only one possibility - return rgb_color(l:x, l:y, l:z) - endif - endfun - - " returns the palette index to approximate the 'rrggbb' hex string - fun rgb(rgb) - let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 - let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 - let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 - - return color(l:r, l:g, l:b) - endfun - - " sets the highlighting for the given group - fun X(group, fg, bg, attr) - if a:fg != "" - exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) - endif - if a:bg != "" - exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) - endif - if a:attr != "" - exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr - endif - endfun - " }}} - - call X("Normal", "cccccc", "000000", "") - - " highlight groups - call X("Cursor", "708090", "f0e68c", "") - "CursorIM - "Directory - "DiffAdd - "DiffChange - "DiffDelete - "DiffText - "ErrorMsg - call X("VertSplit", "c2bfa5", "7f7f7f", "reverse") - call X("Folded", "ffd700", "4d4d4d", "") - call X("FoldColumn", "d2b48c", "4d4d4d", "") - call X("IncSearch", "708090", "f0e68c", "") - "LineNr - call X("ModeMsg", "daa520", "", "") - call X("MoreMsg", "2e8b57", "", "") - call X("NonText", "addbe7", "000000", "bold") - call X("Question", "00ff7f", "", "") - call X("Search", "f5deb3", "cd853f", "") - call X("SpecialKey", "9acd32", "", "") - call X("StatusLine", "c2bfa5", "000000", "reverse") - call X("StatusLineNC", "c2bfa5", "7f7f7f", "reverse") - call X("Title", "cd5c5c", "", "") - call X("Visual", "6b8e23", "f0e68c", "reverse") - "VisualNOS - call X("WarningMsg", "fa8072", "", "") - "WildMenu - "Menu - "Scrollbar - "Tooltip - - " syntax highlighting groups - call X("Comment", "87ceeb", "", "") - call X("Constant", "ffa0a0", "", "") - call X("Identifier", "98fb98", "", "none") - call X("Statement", "f0e68c", "", "bold") - call X("PreProc", "cd5c5c", "", "") - call X("Type", "bdb76b", "", "bold") - call X("Special", "ffdead", "", "") - "Underlined - call X("Ignore", "666666", "", "") - "Error - call X("Todo", "ff4500", "eeee00", "") - - " delete functions {{{ - delf X - delf rgb - delf color - delf rgb_color - delf rgb_level - delf rgb_number - delf grey_color - delf grey_level - delf grey_number - " }}} -else - " color terminal definitions - hi SpecialKey ctermfg=darkgreen - hi NonText cterm=bold ctermfg=darkblue - hi Directory ctermfg=darkcyan - hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 - hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green - hi Search cterm=NONE ctermfg=grey ctermbg=blue - hi MoreMsg ctermfg=darkgreen - hi ModeMsg cterm=NONE ctermfg=brown - hi LineNr ctermfg=3 - hi Question ctermfg=green - hi StatusLine cterm=bold,reverse - hi StatusLineNC cterm=reverse - hi VertSplit cterm=reverse - hi Title ctermfg=5 - hi Visual cterm=reverse - hi VisualNOS cterm=bold,underline - hi WarningMsg ctermfg=1 - hi WildMenu ctermfg=0 ctermbg=3 - hi Folded ctermfg=darkgrey ctermbg=NONE - hi FoldColumn ctermfg=darkgrey ctermbg=NONE - hi DiffAdd ctermbg=4 - hi DiffChange ctermbg=5 - hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 - hi DiffText cterm=bold ctermbg=1 - hi Comment ctermfg=darkcyan - hi Constant ctermfg=brown - hi Special ctermfg=5 - hi Identifier ctermfg=6 - hi Statement ctermfg=3 - hi PreProc ctermfg=5 - hi Type ctermfg=2 - hi Underlined cterm=underline ctermfg=5 - hi Ignore ctermfg=darkgrey - hi Error cterm=bold ctermfg=7 ctermbg=1 -endif - -" vim: set fdl=0 fdm=marker: diff --git a/dot_vim/ftplugin/lisp/limp/highlight.vim b/dot_vim/ftplugin/lisp/limp/highlight.vim deleted file mode 100644 index 893682b..0000000 --- a/dot_vim/ftplugin/lisp/limp/highlight.vim +++ /dev/null @@ -1,236 +0,0 @@ -" -" limp/vim/highlight.vim -" -" URL: -" http://mikael.jansson.be/hacking -" -" Description: -" Highlight parens and containing s-exps -" -" Version: -" 0.2 -" -" Date: -" 2008-04-25 -" -" Authors: -" Mikael Jansson -" Charles E. Campbell, Jr. -NOSPAM -" -" Changelog: -" 2008-04-25 -" * Fixed regressions. Now properly highlights blocks again. -" -" 2008-04-18 -" * Removed all mappings -" * Removed < 7.00 compatibility -" * Renamed to Lim-Highlight -" * Changed from Search to Brackets[Block] -" -" Usage: {{{1 -" Before loading: -" let g:LimpHighlight = 1 -" or after loading: -" call LimpHighlight_start() -" -" --------------------------------------------------------------------- -" Load Once: {{{1 - -let s:keepcpo = &cpo -set cpo&vim - -" disable matchparen: we do that ourselves. -let g:loaded_matchparen = 1 - -" assume that all of the file has been loaded & defined once -" if one of the functions are defined. -if exists("*LimpHighlight_start") - finish -endif - -fun! LimpHighlight_start() - if exists("g:limp_highlight_active") - return - endif - let g:limp_highlight_active = 1 - - if !exists("*Cursor_get") - " due to loading order, may not have loaded yet. - " attempt to force a load now. Ditto for matchit! - silent! runtime limp/cursor.vim - endif - silent! runtime plugin/matchit.vim - - " set whichwrap - let s:wwkeep = &ww - set ww=b,s,<,>,[,] - - augroup LimpHighlight - au! - au CursorMoved * silent call s:LimpHighlight_handler() - augroup END - - set lz - call s:LimpHighlight_handler() - set nolz - -endfun - -fun! LimpHighlight_stop() - "echom "Stopping highlight" - set lz - if exists("g:limp_highlight_active") - unlet g:limp_highlight_active - endif - match none - 2match none - - " remove cursorhold event for highlighting matching bracket - augroup LimpHighlight - au! - augroup END - - let &ww = s:wwkeep - set nolz -endfun - - -" --------------------------------------------------------------------- -" LimpHighlight_handler: this routine actually performs the highlighting of {{{1 -" the matching bracket. -fun! LimpHighlight_handler() - if mode() =~ '['."\".'vV]' - " don't try to highlight matching/surrounding brackets while in - " visual-block mode - return - endif - - - " save - let magickeep = &magic - let regdq = @" - let regunnamed = @@ - let sokeep = &so - let sskeep = &ss - let sisokeep = &siso - let solkeep = &sol - let t_vbkeep = &t_vb - let vbkeep = &vb - silent! let regpaste = @* - - " turn beep/visual flash off - set nosol vb t_vb= so=0 siso=0 ss=0 magic - - " remove every other character from the mps option set - let mps = substitute(&mps,'\(.\).','\1','g') - - " grab a copy of the character under the cursor into @0 - silent! norm! yl - - " if the character grabbed in @0 is in the mps option set, then highlight - " the matching character - if stridx(mps,@0) != -1 - "------------------------------------------ - " We are at a bracket character - "------------------------------------------ - let curchr = @0 - " determine match line, column. - " Restrict search to currently visible portion of window. - if &mps =~ curchr.':' - let stopline = line("w$") - let chrmatch = substitute(&mps,'^.*'.curchr.':\(.\).*$','\1','') - let [mtchline,mtchcol] = searchpairpos(escape(curchr,'[]'),'',escape(chrmatch,'[]'),'n','synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"',stopline) - else - let stopline = line("w0") - let chrmatch = substitute(&mps,'^.*\(.\):'.curchr.'.*$','\1','') - let [mtchline,mtchcol] = searchpairpos(escape(chrmatch,'[]'),'',escape(curchr,'[]'),'bn','synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"',stopline) - endif - - if mtchline != 0 && mtchcol != 0 - let mtchline2 = line('.') - let mtchcol2 = col('.') - let mtchline1 = mtchline - let mtchcol1 = mtchcol - - call s:PerformMatch(mtchline1, mtchcol1, mtchline2, mtchcol2) - else - 2match none - match none - endif - - " if g:HiMtchBrkt_surround exists and is true, then highlight the surrounding brackets - "elseif exists("g:HiMtchBrkt_surround") && g:HiMtchBrkt_surround - else - "------------------------------------------ - " We are inside brackets! - "------------------------------------------ - let swp = Cursor_get() - let openers = '['.escape(substitute(&mps,':.,\=',"","g"),']').']' - let closers = '['.escape(substitute(&mps,',\=.:',"","g"),']').']' - call searchpair(openers,"",closers,'','synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"') - silent! norm! yl - if stridx(mps,@0) != -1 - let mtchline1 = line('.') - let mtchcol1 = virtcol('.') - keepj norm! % - let mtchline2 = line('.') - let mtchcol2 = virtcol('.') - call Cursor_set(swp) - - call s:PerformMatch(mtchline1, mtchcol1, mtchline2, mtchcol2) - else - match none - 2match none - endif - endif - - " restore - let &magic = magickeep - let @" = regdq - let @@ = regunnamed - let &sol = solkeep - let &so = sokeep - let &siso = sisokeep - let &ss = sskeep - let &t_vb = t_vbkeep - let &vb = vbkeep - silent! let @* = regpaste -endfun - -fun! s:PerformMatch(line1, col1, line2, col2) - let line1 = a:line1 - let col1 = a:col1 - let line2 = a:line2 - let col2 = a:col2 - - if line1 == line2 - " at a single line => sort points on columns - if col1 > col2 - let tmp = col2 - let col2 = col1 - let col1 = tmp - let tmp = line2 - let line2 = line1 - let line1 = tmp - endif - exe '2match BracketsBlock /\%'.line1.'l\%>'.col1.'v\%<'.col2.'v/' - else - " at a single line => sort points on lines - if line1 > line2 - let tmp = line2 - let line2 = line1 - let line1 = tmp - let tmp = col2 - let col2 = col1 - let col1 = tmp - endif - exe '2match BracketsBlock /\%'.line1.'l\%>'.col1.'v\|\%>'.line1.'l\%<'.line2.'l\|\%'.line2.'l\%<'.col2.'v/' - endif - - exe 'match Brackets /\%'.line1.'l\%'.col1.'v\|\%'.line2.'l\%'.col2.'v/' -endfun - -let &cpo = s:keepcpo -unlet s:keepcpo - - diff --git a/dot_vim/ftplugin/lisp/limp/keys.vim b/dot_vim/ftplugin/lisp/limp/keys.vim deleted file mode 100644 index 9ff3a01..0000000 --- a/dot_vim/ftplugin/lisp/limp/keys.vim +++ /dev/null @@ -1,96 +0,0 @@ -" -" limp/vim/keys.vim -" -" Description: -" Limp key bindings -" -" Authors: -" Mikael Jansson -" - -nmap LimpBootConnectDisplay -nmap LimpDisconnect -nmap LimpShutdownLisp - -" Eval Top: send top-level s-exp to Lisp -" Eval Current: send current s-exp to Lisp -" Eval Expression: send arbitrary code to Lisp -nmap et EvalTop -nmap ec EvalCurrent -nmap ex EvalExpression - -" Eval Block: visual mode -vmap et EvalBlock -vmap ec EvalBlock -vmap ex EvalBlock - -" SBCL Abort Reset: abort from the debugger -nmap ar AbortReset - -" Abort Interrupt: send ^C to interpreter -nmap ai AbortInterrupt - -" Test Current: copy current s-exp to test buffer -" Test Top: copy top s-exp to test buffer -nmap tc TestCurrent -nmap tt TestTop - -" Load File: load /this/ file into Lisp -" Load Any File: load whichever version of this file (.lisp not given) -nmap lf LoadThisFile -nmap la LoadAnyFile - -" Compile File: compile the current file -" Compile Load File: compile, then load the current file -nmap cf CompileFile -nmap cl CompileAndLoadFile - -" Goto Test Buffer: -" Goto Split: split current buffer and goto test buffer -nmap gt GotoTestBuffer -nmap gs GotoTestBufferAndSplit - -" Goto Last: return to last Lisp buffer -nmap gl GotoLastLispBuffer - -" HyperSpec: -nmap he HyperspecExact -nmap hp HyperspecPrefix -nmap hs HyperspecSuffix -nmap hg HyperspecGrep -nmap hi HyperspecFirstLetterIndex -nmap hI HyperspecFullIndex -nmap K HyperspecExact - -" Help Describe: ask Lisp about the current symbol -nmap hd HelpDescribe - -" Mark Top: mark visual block -nmap mt MarkTop - -" Format Current: reindent/format -" Format Top: -nmap fc FormatCurrent -nmap ft FormatTop - -" Sexp Wrap: wrap the current form in a list -" Sexp Peel: peel a list off the current form -nmap sw SexpWrap -nmap sp SexpPeel - -" Sexp Previous: navigate to previous s-exp -" Sexp Next: navigate to previous s-exp -nmap ( SexpPrevious -nmap ) SexpNext - -" Sexp Move Back: swap this and previous s-exp -" Sexp Move Forward: swap this and next s-exp -nmap { SexpMoveBack -nmap } SexpMoveForward - -" Sexp Comment: comment all the way from the top level -nmap sc SexpComment - -" Sexp Comment Current: comment current form -nmap sC SexpCommentCurrent - diff --git a/dot_vim/ftplugin/lisp/limp/limp.vim b/dot_vim/ftplugin/lisp/limp/limp.vim deleted file mode 100644 index 8c5a2ec..0000000 --- a/dot_vim/ftplugin/lisp/limp/limp.vim +++ /dev/null @@ -1,53 +0,0 @@ -" -" limp/vim/limp.vim -" -" URL: -" http://mikael.jansson.be/hacking -" -" Description: -" Setup the Limp environment -" -" Version: -" 0.2 -" -" Date: -" 2008-04-28 -" -" Authors: -" Mikael Jansson -" -" Changelog: -" * 2008-04-28 by Mikael Jansson -" Only change colorscheme and nocompatible when not previously set. -" -" * 2008-04-25 by Mikael Jansson -" Catch-all key for Lisp boot, connect & display -" -" * 2008-04-20 by Mikael Jansson -" Initial version. - -"------------------------------------------------------------------- - -if exists("b:did_ftplugin") - finish -endif -let b:did_ftplugin = 1 - -"------------------------------------------------------------------- -" external dependencies -"------------------------------------------------------------------- -silent! runtime plugin/matchit.vim - -"------------------------------------------------------------------- -" the Limp library -"------------------------------------------------------------------- - -runtime ftplugin/lisp/limp/cursor.vim -runtime ftplugin/lisp/limp/highlight.vim -runtime ftplugin/lisp/limp/sexp.vim -runtime ftplugin/lisp/limp/bridge.vim -runtime ftplugin/lisp/limp/autoclose.vim -runtime ftplugin/lisp/limp/keys.vim -runtime ftplugin/lisp/limp/mode.vim - - diff --git a/dot_vim/ftplugin/lisp/limp/mode.vim b/dot_vim/ftplugin/lisp/limp/mode.vim deleted file mode 100644 index a2884eb..0000000 --- a/dot_vim/ftplugin/lisp/limp/mode.vim +++ /dev/null @@ -1,118 +0,0 @@ -" -" limp/vim/mode.vim -" -" URL: -" http://mikael.jansson.be -" -" Description: -" Lisp-mode specific functions -" -" Authors: -" Mikael Jansson -" -"Eval (say-hello 'mikael) -command! -buffer -nargs=* Eval silent call LimpBridge_send_to_lisp() - -let b:listener_always_open_window=0 -let b:listener_keep_open=0 - -let g:lisp_mode_active = 0 -fun! LimpMode_start() - if g:lisp_mode_active - return - endif - let g:lisp_mode_active = 1 - "------------------------------------------------------------------- - " coloring - "------------------------------------------------------------------- - let g:lisp_rainbow=1 - - set t_Co=256 - if !exists("g:colors_name") - colorscheme desert256 - endif - - hi Brackets ctermbg=53 ctermfg=white - hi BracketsBlock ctermbg=235 guibg=lightgray - hi StatusLine ctermbg=white ctermfg=160 - hi StatusLineNC ctermbg=black ctermfg=gray - hi Pmenu ctermbg=53 ctermfg=255 - hi PmenuSel ctermbg=255 ctermfg=53 - - " - " set all parens to gray - " - hi hlLevel0 ctermfg=238 - hi hlLevel1 ctermfg=238 - hi hlLevel2 ctermfg=238 - hi hlLevel3 ctermfg=238 - hi hlLevel4 ctermfg=238 - hi hlLevel5 ctermfg=238 - hi hlLevel6 ctermfg=238 - hi hlLevel7 ctermfg=238 - hi hlLevel8 ctermfg=238 - hi hlLevel9 ctermfg=238 - hi hlLevel10 ctermfg=238 - hi hlLevel11 ctermfg=238 - - call LimpHighlight_start() - call AutoClose_start() - - " for whatever reason, nocursorline isn't set after pressing F12... (i.e., - " switching back to the buffer) - setlocal nocursorline -endfun - -fun! LimpMode_stop() - let g:lisp_mode_active = 0 - call LimpHighlight_stop() - call AutoClose_stop() -endfun - -augroup LimpMode - au! - au BufEnter * :if &filetype == "lisp" | call LimpMode_start() | endif - au BufLeave * :if &filetype == "lisp" | call LimpMode_stop() | endif -augroup END - - -"------------------------------------------------------------------- -" init filetype plugin -"------------------------------------------------------------------- -syntax on -setlocal nocompatible nocursorline -setlocal lisp syntax=lisp -setlocal ls=2 bs=2 si et sw=2 ts=2 tw=0 -setlocal statusline=%<%f\ \(%{LimpBridge_connection_status()}\)\ %h%m%r%=%-14.(%l,%c%V%)\ %P\ of\ %L\ \(%.45{getcwd()}\) -setlocal iskeyword=&,*,+,45,/,48-57,:,<,=,>,@,A-Z,a-z,_ -setlocal cpoptions=-mp -setlocal foldmethod=marker foldmarker=(,) foldminlines=1 - - -" This allows gf and :find to work. Fix path to your needs -setlocal suffixesadd=.lisp,cl path=/home/mikael/hacking/lisp/** - -" This allows [d [i [D [I work across files if an ASDF buffer is opened -" If I used load, it would be there too. -setlocal include=(:file\ - -"------------------------------------------------------------------- -" reset to previous values -"------------------------------------------------------------------- - -let s:save_cpo = &cpo -set cpo&vim - -let b:undo_ftplugin = "setlocal syntax< lisp< ls< bs< si< et< sw< " - \ . "ts< tw< complete< nocursorline< nocompatible< statusline< iskeyword< " - \ . "cpoptions< foldmethod< foldmarker< foldminlines< " - \ . "suffixesadd< path< include< " - -let &cpo = s:save_cpo -unlet s:save_cpo - - -"------------- boot! - -call LimpMode_start() - diff --git a/dot_vim/ftplugin/lisp/limp/sexp.vim b/dot_vim/ftplugin/lisp/limp/sexp.vim deleted file mode 100644 index 0dd5415..0000000 --- a/dot_vim/ftplugin/lisp/limp/sexp.vim +++ /dev/null @@ -1,308 +0,0 @@ -" -" limp/vim/sexp.vim -" -" URL: -" http://mikael.jansson.be/hacking -" -" Description: -" Things to help you out with s-exps. -" -" Version: -" 0.2 -" -" Date: -" 2008-04-20 -" -" Authors: -" Mikael Jansson -" -" Changelog: -" 2008-04-20 -" * Initial version. -" * Based on ViLisp.vim by Larry Clapp - -" Mark Top: mark visual block -nnoremap MarkTop 99[(V% - -" Format Current: reindent/format -" Format Top: -nnoremap FormatCurrent [(=%`' -nnoremap FormatTop 99[(=%`' - -" Sexp Wrap: wrap the current form in a list -" Sexp Peel: peel a list off the current form -nnoremap SexpWrap :call Cursor_push()[(%a)h%i(:call Cursor_pop() -nnoremap SexpPeel :call Cursor_push()[(:call Cursor_push()%x:call Cursor_pop()x:call Cursor_pop() - -" Sexp Previous: navigate to previous s-exp -" Sexp Next: navigate to previous s-exp -nnoremap SexpPrevious :call Sexp_Previous() -nnoremap SexpNext :call Sexp_Next() - -" Sexp Move Back: swap this and previous s-exp -" Sexp Move Forward: swap this and next s-exp -nnoremap SexpMoveBack :call Sexp_MoveBack() -nnoremap SexpMoveForward :call Sexp_MoveForward() - -" Sexp Comment: comment all the way from the top level -nnoremap SexpComment :call Cursor_push()99[(%a\|#hh%i#\|:call Cursor_pop() - -" Sexp Comment Current: comment current form -nnoremap SexpCommentCurrent :call Cursor_push()[(%a\|#hh%i#\|:call Cursor_pop() - - -"------------------------------------------------------------------- - -fun! Sexp_Next() - let [l, c] = Sexp_get_Next() - call cursor(l, c) -endfun - -fun! Sexp_Previous() - let [l, c] = Sexp_get_Previous() - if l == 0 && c == 0 - return - endif - call cursor(l, c) - return -endfun - -" return the position of the next s-exp -fun! Sexp_get_Next() - return searchpos('(', 'nW') -endfun - -" return the position of the previous s-exp -fun! Sexp_get_Previous() - let p = getpos(".") - - " If outside of *any* s-exps, move to the previous s-exp first. - let [l, c] = searchpairpos('(', '', ')', 'bnW') - if l == 0 && c == 0 - call searchpos(')', 'Wb') - endif - - " now, move to the start of this s-exp, wherever it may be. - let [l, c] = searchpos('(', 'Wnb') - - call setpos(".", p) - - return [l, c] -endfun - -"XXX: MoveBack/MoveForward share much code - -fun! Sexp_MoveBack() - " Inside an s-exp? - let [l, c] = searchpairpos('(', '', ')', 'bcnW') - if l == 0 || c == 0 - " Nope, - return - endif - - silent! let regs = @* - - " mark the start of this s-exp - silent! norm! yl - if @0 != "(" - call Sexp_Previous() - endif - - " - " Find out if the previous s-exp is the parent of the current - " - " This by searching to the previous s-exp, doing a % and checking either - " of the following conditions: - " - " * prev_line2 == this_line2 && prev_col2 > this_col2 - " * prev_line2 > this_line2 - " - " where prev_line2/prev_col2 = the ) of the previous match, and - " this_line2/this_col2 = the ) of the current s-exp. - " - - " so we can get back. - silent! norm! ma - let [b, this_line1, this_col1, o] = getpos('.') - - " where does the *current* s-exp end? - silent! norm! % - let [b, this_line2, this_col2, o] = getpos('.') - silent! norm! % - - " where does the previous s-exp end? - call Sexp_Previous() - silent! norm! mb - - let [b, prev_line1, prev_col1, o] = getpos('.') - silent! norm! % - let [b, prev_line2, prev_col2, o] = getpos('.') - - if (prev_line2 == this_line2 && prev_col2 > this_col2) || (prev_line2 > this_line2) - " For now, just do nothing - echom "Error: Trying to transpose s-exp backwards with parent." - silent! norm! `a - return - endif - - " -------------------------------------------------------- - - " get the s-exps - silent! norm! `a - silent! norm! "ayab - silent! norm! `b - silent! norm! "byab - - " copy and replace current s-exp with whitespace - let @c = Fill(" ", len(@b)) - let @d = Fill(" ", len(@a)) - - silent! norm! `a"_dab - silent! norm! `a"cP - - silent! norm! `b"_dab - silent! norm! `b"dP - - if this_line1 == prev_line1 - - let diff = len(@a) - len(@b) - if diff > 0 - let movement = ''.diff.'l' - elseif diff < 0 - let movement = ''.(-diff).'h' - else - let movement = '' - endif - - silent! norm! `b"aPl - silent! exe 'norm! '.len(@a).'x' - - silent! exe 'norm! `a'.movement.'"bPl' - silent! exe 'norm! '.len(@b).'x' - - silent! norm! `b - else - " different lines, so a simple paste will do - - silent! norm! `a"bP - silent! exe 'norm! l'.len(@a).'x' - silent! norm! `b"aP - silent! exe 'norm! l'.len(@b).'x' - silent! norm! `b - endif - - silent! let @* = regs -endfun - -fun! Sexp_MoveForward() - " Inside an s-exp? - let [l, c] = searchpairpos('(', '', ')', 'bcnW') - if l == 0 || c == 0 - " Nope, - return - endif - - silent! let regs = @* - - " mark the start of this s-exp - silent! norm! yl - if @0 != "(" - call Sexp_Previous() - endif - - " - " Find out if the next s-exp is the parent of the current. - " - " Search for the next ')', then see where the matching '(' ends. - " Check for any of the following conditions. - " - " * prev_line1 == this_line1 && prev_col1 < this_col1 - " * prev_line1 < this_line1 - " - " where prev_line1/prev_col1 = the ( of the previous match, and - " this_line1/this_col1 = the ( of the current s-exp. - " - - " so we can get back. - silent! norm! ma - let [b, this_line1, this_col1, o] = getpos('.') - - " where does the *current* s-exp end? - silent! norm! % - let [b, this_line2, this_col2, o] = getpos('.') - - " where does the next s-exp end? - call search(')', 'W') - - let [b, prev_line2, prev_col2, o] = getpos('.') - silent! norm! % - - silent! norm! mb - let [b, prev_line1, prev_col1, o] = getpos('.') - - if (prev_line1 == this_line1 && prev_col1 < this_col1) || (prev_line1 < this_line1) - " For now, just do nothing - echom "Error: Trying to transpose s-exp forward with parent." - silent! norm! `a - return - endif - - " -------------------------------------------------------- - - " get the s-exps - silent! norm! `a - silent! norm! "ayab - silent! norm! `b - silent! norm! "byab - - " copy and replace current s-exp with whitespace - let @c = Fill(" ", len(@b)) - let @d = Fill(" ", len(@a)) - - silent! norm! `b"_dab - silent! norm! `b"dP - - silent! norm! `a"_dab - silent! norm! `a"cP - - if this_line1 == prev_line1 - - let diff = len(@a) - len(@b) - if diff > 0 - let movement = ''.diff.'h' - elseif diff < 0 - let movement = ''.(-diff).'l' - else - let movement = '' - endif - - silent! norm! `a"bPl - silent! exe 'norm! '.len(@b).'x' - - silent! exe 'norm! `b'.movement.'"aPl' - silent! exe 'norm! '.len(@a).'x' - - silent! exe 'norm! `b'.movement - else - " different lines, so a simple paste will do - - silent! norm! `a"bP - silent! exe 'norm! l'.len(@a).'x' - silent! norm! `b"aP - silent! exe 'norm! l'.len(@b).'x' - silent! norm! `b - endif - - silent! let @* = regs -endfun - -fun! Fill(c, n) - let s = "" - let n = a:n - while n > 0 - let s = s.a:c - let n = n-1 - endwhile - return s -endfun - diff --git a/dot_vim/ftplugin/lisp/limp/thesaurus b/dot_vim/ftplugin/lisp/limp/thesaurus deleted file mode 100644 index 94a3ca9..0000000 --- a/dot_vim/ftplugin/lisp/limp/thesaurus +++ /dev/null @@ -1,1339 +0,0 @@ -&aux -&key -acos -aref -asin -atan -atom -byte -caar -cadr -case -cdar -cddr -char -cond -cons -cosh -decf -endp -eval -expt -fill -find -flet -getf -incf -last -let* -list -load -loop -mapc -mapl -null -oddp -open -prog -push -read -real -remf -rest -room -sbit -setf -setq -sinh -some -sort -sqrt -step -tanh -time -type -warn -when -&body -&rest -abort -acons -acosh -apply -array -asinh -assoc -atanh -block -boole -break -caaar -caadr -cadar -caddr -catch -ccase -cdaar -cdadr -cddar -cdddr -char< -char= -char> -class -close -consp -count -debug -defun -ecase -equal -error -evenp -every -fifth -first -float -floor -ftype -isqrt -ldiff -list* -listp -merge -nconc -ninth -phase -plusp -prin1 -princ -print -prog* -prog1 -prog2 -progn -progv -psetf -psetq -quote -ratio -realp -round -schar -sixth -sleep -space -speed -subst -svref -tailp -tenth -third -throw -trace -typep -union -write -zerop -&whole -adjoin -append -arrayp -assert -bignum -boundp -caaaar -caaadr -caadar -caaddr -cadaar -cadadr -caddar -cadddr -cdaaar -cdaadr -cdadar -cdaddr -cddaar -cddadr -cdddar -cddddr -cerror -char/= -char<= -char>= -coerce -defvar -delete -dolist -eighth -equalp -export -ffloor -fixnum -floatp -format -fourth -fround -gensym -ignore -import -inline -intern -labels -lambda -length -listen -logand -logeqv -logior -lognor -lognot -logxor -mapcan -mapcar -mapcon -member -method -minusp -notany -nsubst -nthcdr -number -nunion -pprint -random -rassoc -reduce -remove -return -rplaca -rplacd -safety -search -second -shadow -shiftf -signal -signum -stream -string -sublis -subseq -sxhash -symbol -terpri -unless -values -vector -apropos -bit-and -bit-eqv -bit-ior -bit-nor -bit-not -bit-xor -boole-1 -boole-2 -boolean -butlast -ceiling -clrhash -compile -complex -declaim -declare -defsetf -deftype -dotimes -dribble -fboundp -find-if -funcall -gentemp -gethash -inspect -integer -keyword -locally -logbitp -lognand -logorc1 -logorc2 -logtest -maphash -maplist -nreconc -nsublis -numberp -package -pairlis -provide -pushnew -remhash -remprop -replace -require -restart -reverse -rotatef -seventh -special -streamp -string< -string= -string> -stringp -subsetp -symbolp -tagbody -type-of -untrace -vectorp -warning -assoc-if -bit-nand -bit-orc1 -bit-orc2 -boole-c1 -boole-c2 -char-int -class-of -complexp -continue -copy-seq -count-if -defclass -defmacro -describe -fceiling -function -identity -imagpart -integerp -keywordp -ldb-test -logandc1 -logandc2 -logcount -macrolet -map-into -mismatch -nbutlast -notevery -nreverse -optimize -packagep -pathname -position -proclaim -rational -realpart -sequence -standard -string/= -string<= -string>= -subst-if -subtypep -truename -truncate -typecase -unexport -unintern -variable -y-or-n-p -&optional -*modules* -*package* -base-char -bit-andc1 -bit-andc2 -boole-and -boole-clr -boole-eqv -boole-ior -boole-nor -boole-set -boole-xor -byte-size -char-code -char-name -character -code-char -condition -conjugate -constantp -copy-list -copy-tree -ctypecase -defmethod -defstruct -delete-if -directory -etypecase -eval-when -formatter -ftruncate -functionp -ignorable -make-list -member-if -name-char -notinline -nsubst-if -nth-value -numerator -otherwise -pathnamep -peek-char -rassoc-if -rationalp -read-byte -read-char -read-line -readtable -remove-if -revappend -satisfies -structure -use-value -*debug-io* -*features* -*query-io* -add-method -array-rank -bit-vector -boole-nand -boole-orc1 -boole-orc2 -cell-error -char-equal -char-lessp -characterp -check-type -class-name -complement -constantly -copy-alist -defgeneric -defpackage -digit-char -do-symbols -file-error -find-class -float-sign -fresh-line -hash-table -in-package -long-float -make-array -makunbound -mask-field -namestring -pprint-pop -pprint-tab -probe-file -readtablep -slot-value -substitute -tree-equal -type-error -vector-pop -with-slots -write-byte -write-char -write-line -*read-base* -*read-eval* -*readtable* -base-string -boole-andc1 -boole-andc2 -both-case-p -call-method -char-upcase -clear-input -concatenate -copy-symbol -declaration -defconstant -delete-file -denominator -disassemble -echo-stream -end-of-file -fdefinition -file-author -file-length -file-stream -find-if-not -find-method -find-symbol -float-radix -fmakunbound -list-length -loop-finish -macroexpand -make-method -make-string -make-symbol -nsubstitute -parse-error -position-if -pprint-fill -rationalize -rename-file -return-from -scale-float -short-float -signed-byte -slot-boundp -stable-sort -store-value -string-trim -symbol-name -unread-char -use-package -values-list -vector-push -yes-or-no-p -&environment -*load-print* -*print-base* -*print-case* -adjust-array -alpha-char-p -apropos-list -assoc-if-not -bit-vector-p -change-class -clear-output -compile-file -count-if-not -decode-float -defparameter -digit-char-p -double-float -fill-pointer -find-package -find-restart -float-digits -force-output -handler-bind -handler-case -hash-table-p -intersection -lower-case-p -machine-type -make-package -package-name -print-object -random-state -reader-error -restart-bind -restart-case -restart-name -simple-array -simple-error -single-float -slot-missing -slot-unbound -stream-error -string-equal -string-lessp -subst-if-not -symbol-plist -symbol-value -unbound-slot -upper-case-p -write-string -*print-array* -*print-level* -*print-lines* -*print-radix* -*terminal-io* -alphanumericp -byte-position -char-downcase -char-greaterp -control-error -delete-if-not -deposit-field -documentation -extended-char -file-position -finish-output -ignore-errors -macroexpand-1 -make-instance -make-pathname -make-sequence -member-if-not -next-method-p -nintersection -nsubst-if-not -open-stream-p -package-error -parse-integer -pathname-host -pathname-name -pathname-type -pprint-indent -pprint-linear -program-error -rassoc-if-not -read-sequence -remove-if-not -remove-method -simple-string -simple-vector -slot-exists-p -software-type -standard-char -string-stream -string-upcase -style-warning -substitute-if -unsigned-byte -unuse-package -*error-output* -*load-verbose* -*print-circle* -*print-escape* -*print-gensym* -*print-length* -*print-pretty* -*random-state* -*trace-output* -built-in-class -char-not-equal -char-not-lessp -compiler-macro -copy-readtable -copy-structure -delete-package -do-all-symbols -dynamic-extent -get-properties -graphic-char-p -input-stream-p -integer-length -invoke-restart -long-site-name -macro-function -make-condition -make-load-form -muffle-warning -no-next-method -nstring-upcase -nsubstitute-if -pprint-newline -pprint-tabular -random-state-p -readtable-case -rename-package -row-major-aref -set-difference -simple-warning -standard-class -symbol-package -synonym-stream -two-way-stream -unwind-protect -with-accessors -with-open-file -write-sequence -*compile-print* -*debugger-hook* -*load-pathname* -*load-truename* -*read-suppress* -array-dimension -cell-error-name -char-code-limit -describe-object -file-namestring -file-write-date -float-precision -hash-table-size -hash-table-test -host-namestring -invoke-debugger -load-time-value -machine-version -make-hash-table -merge-pathnames -nset-difference -output-stream-p -pathname-device -position-if-not -pprint-dispatch -prin1-to-string -princ-to-string -short-site-name -simple-string-p -simple-vector-p -slot-makunbound -standard-char-p -standard-method -standard-object -string-downcase -string-greaterp -structure-class -symbol-function -symbol-macrolet -wild-pathname-p -write-to-string -*gensym-counter* -*print-readably* -*standard-input* -arithmetic-error -array-dimensions -array-rank-limit -array-total-size -broadcast-stream -call-next-method -compute-restarts -define-condition -division-by-zero -find-all-symbols -generic-function -get-decoded-time -hash-table-count -logical-pathname -machine-instance -make-echo-stream -nstring-downcase -package-use-list -parse-namestring -pathname-match-p -pathname-version -read-from-string -set-exclusive-or -shadowing-import -simple-condition -software-version -string-left-trim -string-not-equal -string-not-lessp -structure-object -type-error-datum -unbound-variable -with-open-stream -&allow-other-keys -*compile-verbose* -*standard-output* -allocate-instance -array-in-bounds-p -char-not-greaterp -compilation-speed -compiled-function -delete-duplicates -enough-namestring -function-keywords -list-all-packages -make-random-state -method-qualifiers -nset-exclusive-or -package-nicknames -read-char-no-hang -remove-duplicates -serious-condition -shared-initialize -simple-bit-vector -simple-type-error -storage-condition -string-capitalize -string-right-trim -substitute-if-not -*break-on-signals* -*macroexpand-hook* -adjustable-array-p -array-displacement -array-element-type -destructuring-bind -file-string-length -get-setf-expansion -get-universal-time -long-float-epsilon -method-combination -nstring-capitalize -nsubstitute-if-not -pathname-directory -print-not-readable -simple-base-string -special-operator-p -translate-pathname -undefined-function -vector-push-extend -*print-miser-width* -compiled-function-p -concatenated-stream -define-modify-macro -define-symbol-macro -do-external-symbols -file-error-pathname -get-macro-character -initialize-instance -make-synonym-stream -make-two-way-stream -multiple-value-bind -multiple-value-call -multiple-value-list -multiple-value-setq -read-delimited-list -set-macro-character -set-pprint-dispatch -short-float-epsilon -simple-bit-vector-p -stream-element-type -stream-error-stream -string-not-greaterp -with-simple-restart -*print-right-margin* -call-arguments-limit -copy-pprint-dispatch -define-setf-expander -directory-namestring -double-float-epsilon -integer-decode-float -interactive-stream-p -invalid-method-error -lambda-list-keywords -most-negative-fixnum -most-positive-fixnum -multiple-value-prog1 -no-applicable-method -package-used-by-list -pprint-logical-block -set-syntax-from-char -single-float-epsilon -array-dimension-limit -array-row-major-index -compile-file-pathname -decode-universal-time -define-compiler-macro -encode-universal-time -get-internal-run-time -make-broadcast-stream -multiple-values-limit -package-error-package -reinitialize-instance -synonym-stream-symbol -unbound-slot-instance -user-homedir-pathname -with-compilation-unit -with-output-to-string -with-package-iterator -array-total-size-limit -floating-point-inexact -get-internal-real-time -hash-table-rehash-size -stream-external-format -with-input-from-string -*compile-file-pathname* -*compile-file-truename* -*print-pprint-dispatch* -compiler-macro-function -ensure-generic-function -floating-point-overflow -lambda-parameters-limit -make-instances-obsolete -print-unreadable-object -with-condition-restarts -with-standard-io-syntax -array-has-fill-pointer-p -broadcast-stream-streams -echo-stream-input-stream -ensure-directories-exist -floating-point-underflow -get-output-stream-string -lisp-implementation-type -make-concatenated-stream -make-string-input-stream -method-combination-error -most-negative-long-float -most-positive-long-float -type-error-expected-type -with-hash-table-iterator -arithmetic-error-operands -define-method-combination -echo-stream-output-stream -least-negative-long-float -least-positive-long-float -make-string-output-stream -most-negative-short-float -most-positive-short-float -package-shadowing-symbols -print-not-readable-object -standard-generic-function -arithmetic-error-operation -compute-applicable-methods -function-lambda-expression -least-negative-short-float -least-positive-short-float -most-negative-double-float -most-negative-single-float -most-positive-double-float -most-positive-single-float -read-preserving-whitespace -translate-logical-pathname -upgraded-complex-part-type -*default-pathname-defaults* -*read-default-float-format* -concatenated-stream-streams -hash-table-rehash-threshold -least-negative-double-float -least-negative-single-float -least-positive-double-float -least-positive-single-float -lisp-implementation-version -long-float-negative-epsilon -make-load-form-saving-slots -two-way-stream-input-stream -upgraded-array-element-type -get-dispatch-macro-character -invoke-restart-interactively -set-dispatch-macro-character -short-float-negative-epsilon -two-way-stream-output-stream -double-float-negative-epsilon -logical-pathname-translations -make-dispatch-macro-character -pprint-exit-if-list-exhausted -single-float-negative-epsilon -internal-time-units-per-second -simple-condition-format-control -floating-point-invalid-operation -simple-condition-format-arguments -load-logical-pathname-translations -update-instance-for-different-class -update-instance-for-redefined-class -least-negative-normalized-long-float -least-positive-normalized-long-float -least-negative-normalized-short-float -least-positive-normalized-short-float -least-negative-normalized-double-float -least-negative-normalized-single-float -least-positive-normalized-double-float -least-positive-normalized-single-float -&a-o-k &allow-other-keys -*b-o-s *break-on-signals* -*c-f-p *compile-file-pathname* -*c-f-t *compile-file-truename* -*c-p *compile-print* -*c-v *compile-verbose* -*d-h *debugger-hook* -*d-i *debug-io* -*d-p-d *default-pathname-defaults* -*e-o *error-output* -*g-c *gensym-counter* -*l-p *load-print* *load-pathname* -*l-t *load-truename* -*l-v *load-verbose* -*m-h *macroexpand-hook* -*p-a *print-array* -*p-b *print-base* -*p-c *print-case* *print-circle* -*p-e *print-escape* -*p-g *print-gensym* -*p-l *print-level* *print-lines* *print-length* -*p-m-w *print-miser-width* -*p-p *print-pretty* -*p-p-d *print-pprint-dispatch* -*p-r *print-radix* *print-readably* -*p-r-m *print-right-margin* -*q-i *query-io* -*r-b *read-base* -*r-d-f-f *read-default-float-format* -*r-e *read-eval* -*r-s *random-state* *read-suppress* -*s-i *standard-input* -*s-o *standard-output* -*t-i *terminal-io* -*t-o *trace-output* -a-a adjust-array -a-a-p adjustable-array-p -a-c-p alpha-char-p -a-d array-dimension array-dimensions array-displacement -a-d-l array-dimension-limit -a-e arithmetic-error -a-e-o arithmetic-error-operands arithmetic-error-operation -a-e-t array-element-type -a-h-f-p-p array-has-fill-pointer-p -a-i assoc-if allocate-instance -a-i-b-p array-in-bounds-p -a-i-n assoc-if-not -a-l apropos-list -a-m add-method -a-o-k &allow-other-keys -a-r array-rank -a-r-l array-rank-limit -a-r-m-i array-row-major-index -a-t-s array-total-size -a-t-s-l array-total-size-limit -b-1 boole-1 -b-2 boole-2 -b-a bit-and bit-andc1 bit-andc2 boole-and boole-andc1 boole-andc2 -b-c boole-c1 boole-c2 base-char boole-clr -b-c-p both-case-p -b-e bit-eqv boole-eqv -b-i bit-ior boole-ior -b-i-c built-in-class -b-n bit-nor bit-not bit-nand boole-nor boole-nand -b-o bit-orc1 bit-orc2 boole-orc1 boole-orc2 -b-o-s *break-on-signals* -b-p byte-position -b-s boole-set byte-size base-string broadcast-stream -b-s-s broadcast-stream-streams -b-v bit-vector -b-v-p bit-vector-p -b-x bit-xor boole-xor -c-a copy-alist -c-a-l call-arguments-limit -c-a-m compute-applicable-methods -c-c char-code code-char change-class -c-c-l char-code-limit -c-d char-downcase -c-e cell-error char-equal control-error -c-e-n cell-error-name -c-f compile-file compiled-function -c-f-p compiled-function-p compile-file-pathname *compile-file-pathname* -c-f-t *compile-file-truename* -c-g char-greaterp -c-i char-int count-if clear-input -c-i-n count-if-not -c-l copy-list char-lessp -c-m call-method compiler-macro -c-m-f compiler-macro-function -c-n char-name class-name -c-n-e char-not-equal -c-n-g char-not-greaterp -c-n-l char-not-lessp -c-n-m call-next-method -c-o class-of clear-output -c-p *compile-print* -c-p-d copy-pprint-dispatch -c-r copy-readtable compute-restarts -c-s copy-seq copy-symbol copy-structure compilation-speed concatenated-stream -c-s-s concatenated-stream-streams -c-t copy-tree check-type -c-u char-upcase -c-v *compile-verbose* -d-a-s do-all-symbols -d-b destructuring-bind -d-b-z division-by-zero -d-c digit-char define-condition -d-c-m define-compiler-macro -d-c-p digit-char-p -d-d delete-duplicates -d-e dynamic-extent -d-e-s do-external-symbols -d-f delete-file decode-float double-float deposit-field -d-f-e double-float-epsilon -d-f-n-e double-float-negative-epsilon -d-h *debugger-hook* -d-i delete-if *debug-io* -d-i-n delete-if-not -d-m-c define-method-combination -d-m-m define-modify-macro -d-n directory-namestring -d-o describe-object -d-p delete-package -d-p-d *default-pathname-defaults* -d-s do-symbols -d-s-e define-setf-expander -d-s-m define-symbol-macro -d-u-t decode-universal-time -e-c extended-char -e-d-e ensure-directories-exist -e-g-f ensure-generic-function -e-n enough-namestring -e-o *error-output* -e-o-f end-of-file -e-s echo-stream -e-s-i-s echo-stream-input-stream -e-s-o-s echo-stream-output-stream -e-u-t encode-universal-time -e-w eval-when -f-a file-author -f-a-s find-all-symbols -f-c find-class -f-d float-digits -f-e file-error -f-e-p file-error-pathname -f-i find-if -f-i-n find-if-not -f-k function-keywords -f-l fresh-line file-length -f-l-e function-lambda-expression -f-m find-method -f-n file-namestring -f-o force-output finish-output -f-p fill-pointer find-package file-position float-precision -f-p-i floating-point-inexact -f-p-i-o floating-point-invalid-operation -f-p-o floating-point-overflow -f-p-u floating-point-underflow -f-r float-radix find-restart -f-s float-sign file-stream find-symbol -f-s-l file-string-length -f-w-d file-write-date -g-c *gensym-counter* -g-c-p graphic-char-p -g-d-m-c get-dispatch-macro-character -g-d-t get-decoded-time -g-f generic-function -g-i-r-t get-internal-run-time get-internal-real-time -g-m-c get-macro-character -g-o-s-s get-output-stream-string -g-p get-properties -g-s-e get-setf-expansion -g-u-t get-universal-time -h-b handler-bind -h-c handler-case -h-n host-namestring -h-t hash-table -h-t-c hash-table-count -h-t-p hash-table-p -h-t-r-s hash-table-rehash-size -h-t-r-t hash-table-rehash-threshold -h-t-s hash-table-size -h-t-t hash-table-test -i-d invoke-debugger -i-d-f integer-decode-float -i-e ignore-errors -i-i initialize-instance -i-l integer-length -i-m-e invalid-method-error -i-p in-package -i-r invoke-restart -i-r-i invoke-restart-interactively -i-s-p input-stream-p interactive-stream-p -i-t-u-p-s internal-time-units-per-second -l-a-p list-all-packages -l-c-p lower-case-p -l-f long-float loop-finish -l-f-e long-float-epsilon -l-f-n-e long-float-negative-epsilon -l-i-t lisp-implementation-type -l-i-v lisp-implementation-version -l-l list-length -l-l-k lambda-list-keywords -l-l-p-t load-logical-pathname-translations -l-n-d-f least-negative-double-float -l-n-l-f least-negative-long-float -l-n-n-d-f least-negative-normalized-double-float -l-n-n-l-f least-negative-normalized-long-float -l-n-n-s-f least-negative-normalized-short-float least-negative-normalized-single-float -l-n-s-f least-negative-short-float least-negative-single-float -l-p *load-print* *load-pathname* logical-pathname -l-p-d-f least-positive-double-float -l-p-l lambda-parameters-limit -l-p-l-f least-positive-long-float -l-p-n-d-f least-positive-normalized-double-float -l-p-n-l-f least-positive-normalized-long-float -l-p-n-s-f least-positive-normalized-short-float least-positive-normalized-single-float -l-p-s-f least-positive-short-float least-positive-single-float -l-p-t logical-pathname-translations -l-s-n long-site-name -l-t ldb-test *load-truename* -l-t-v load-time-value -l-v *load-verbose* -m-1 macroexpand-1 -m-a make-array -m-b-s make-broadcast-stream -m-c make-condition method-combination -m-c-e method-combination-error -m-c-s make-concatenated-stream -m-d-m-c make-dispatch-macro-character -m-e-s make-echo-stream -m-f mask-field macro-function -m-h *macroexpand-hook* -m-h-t make-hash-table -m-i map-into member-if make-instance machine-instance -m-i-n member-if-not -m-i-o make-instances-obsolete -m-l make-list -m-l-f make-load-form -m-l-f-s-s make-load-form-saving-slots -m-m make-method -m-n-d-f most-negative-double-float -m-n-f most-negative-fixnum -m-n-l-f most-negative-long-float -m-n-s-f most-negative-short-float most-negative-single-float -m-p make-package make-pathname merge-pathnames -m-p-d-f most-positive-double-float -m-p-f most-positive-fixnum -m-p-l-f most-positive-long-float -m-p-s-f most-positive-short-float most-positive-single-float -m-q method-qualifiers -m-r-s make-random-state -m-s make-string make-symbol make-sequence -m-s-i-s make-string-input-stream -m-s-o-s make-string-output-stream -m-s-s make-synonym-stream -m-t machine-type -m-t-w-s make-two-way-stream -m-v machine-version -m-v-b multiple-value-bind -m-v-c multiple-value-call -m-v-l multiple-value-list multiple-values-limit -m-v-p multiple-value-prog1 -m-v-s multiple-value-setq -m-w muffle-warning -n-a-m no-applicable-method -n-c name-char nstring-capitalize -n-d nset-difference nstring-downcase -n-e-o nset-exclusive-or -n-i nsubst-if nsubstitute-if -n-i-n nsubst-if-not nsubstitute-if-not -n-m-p next-method-p -n-n-m no-next-method -n-u nstring-upcase -n-v nth-value -o-s-p open-stream-p output-stream-p -p-a *print-array* -p-b *print-base* -p-c peek-char *print-case* *print-circle* -p-d pathname-device pprint-dispatch pathname-directory -p-e parse-error package-error program-error *print-escape* -p-e-i-l-e pprint-exit-if-list-exhausted -p-e-p package-error-package -p-f probe-file pprint-fill -p-g *print-gensym* -p-h pathname-host -p-i position-if parse-integer pprint-indent -p-i-n position-if-not -p-l *print-level* *print-lines* pprint-linear *print-length* -p-l-b pprint-logical-block -p-m-p pathname-match-p -p-m-w *print-miser-width* -p-n package-name pathname-name pprint-newline parse-namestring package-nicknames -p-n-r print-not-readable -p-n-r-o print-not-readable-object -p-o print-object -p-p pprint-pop *print-pretty* -p-p-d *print-pprint-dispatch* -p-r *print-radix* *print-readably* -p-r-m *print-right-margin* -p-s-s package-shadowing-symbols -p-t pprint-tab pathname-type pprint-tabular -p-t-s prin1-to-string princ-to-string -p-u-b-l package-used-by-list -p-u-l package-use-list -p-u-o print-unreadable-object -p-v pathname-version -q-i *query-io* -r-b read-byte *read-base* restart-bind -r-c read-char restart-case readtable-case -r-c-n-h read-char-no-hang -r-d remove-duplicates -r-d-f-f *read-default-float-format* -r-d-l read-delimited-list -r-e *read-eval* reader-error -r-f rename-file return-from -r-f-s read-from-string -r-i rassoc-if remove-if reinitialize-instance -r-i-n rassoc-if-not remove-if-not -r-l read-line -r-m remove-method -r-m-a row-major-aref -r-n restart-name -r-p rename-package -r-p-w read-preserving-whitespace -r-s random-state read-sequence *random-state* *read-suppress* -r-s-p random-state-p -s-a simple-array -s-b signed-byte slot-boundp -s-b-s simple-base-string -s-b-v simple-bit-vector -s-b-v-p simple-bit-vector-p -s-c standard-char standard-class structure-class simple-condition serious-condition storage-condition string-capitalize -s-c-f-a simple-condition-format-arguments -s-c-f-c simple-condition-format-control -s-c-p standard-char-p -s-d set-difference string-downcase -s-d-m-c set-dispatch-macro-character -s-e simple-error stream-error string-equal -s-e-f stream-external-format -s-e-o set-exclusive-or -s-e-p slot-exists-p -s-e-s stream-error-stream -s-e-t stream-element-type -s-f scale-float short-float single-float symbol-function -s-f-e short-float-epsilon single-float-epsilon -s-f-n-e short-float-negative-epsilon single-float-negative-epsilon -s-g string-greaterp -s-g-f standard-generic-function -s-i subst-if substitute-if *standard-input* shadowing-import shared-initialize -s-i-n subst-if-not substitute-if-not -s-l string-lessp -s-l-t string-left-trim -s-m slot-missing slot-makunbound standard-method symbol-macrolet -s-m-c set-macro-character -s-n symbol-name -s-n-e string-not-equal -s-n-g string-not-greaterp -s-n-l string-not-lessp -s-o standard-object structure-object *standard-output* -s-o-p special-operator-p -s-p symbol-plist symbol-package -s-p-d set-pprint-dispatch -s-r-t string-right-trim -s-s stable-sort simple-string string-stream synonym-stream -s-s-f-c set-syntax-from-char -s-s-n short-site-name -s-s-p simple-string-p -s-s-s synonym-stream-symbol -s-t string-trim software-type -s-t-e simple-type-error -s-u slot-unbound string-upcase -s-v slot-value store-value symbol-value simple-vector software-version -s-v-p simple-vector-p -s-w style-warning simple-warning -t-e tree-equal type-error -t-e-d type-error-datum -t-e-e-t type-error-expected-type -t-i *terminal-io* -t-l-p translate-logical-pathname -t-o type-of *trace-output* -t-p translate-pathname -t-w-s two-way-stream -t-w-s-i-s two-way-stream-input-stream -t-w-s-o-s two-way-stream-output-stream -u-a-e-t upgraded-array-element-type -u-b unsigned-byte -u-c unread-char -u-c-p upper-case-p -u-c-p-t upgraded-complex-part-type -u-f undefined-function -u-h-p user-homedir-pathname -u-i-f-d-c update-instance-for-different-class -u-i-f-r-c update-instance-for-redefined-class -u-p use-package unuse-package unwind-protect -u-s unbound-slot -u-s-i unbound-slot-instance -u-v use-value unbound-variable -v-l values-list -v-p vector-pop vector-push -v-p-e vector-push-extend -w-a with-accessors -w-b write-byte -w-c write-char -w-c-r with-condition-restarts -w-c-u with-compilation-unit -w-h-t-i with-hash-table-iterator -w-i-f-s with-input-from-string -w-l write-line -w-o-f with-open-file -w-o-s with-open-stream -w-o-t-s with-output-to-string -w-p-i with-package-iterator -w-p-p wild-pathname-p -w-s with-slots write-string write-sequence -w-s-i-s with-standard-io-syntax -w-s-r with-simple-restart -w-t-s write-to-string -y-o-n-p y-or-n-p yes-or-no-p