3 ms·
Vim Plugins You Should Know About, Part I: surround.vim
- tumult 18y agooh my god, thank you. i love you.
- thamer 18y agoI tried this plugin a few days ago, but it seemed to break the s (substitute) command, so I removed it. Does someone know how to make it work? The problem is the following: Write a line of text, select part of it using v, then press s to remove the selection and enter insert mode to start replacing it. This doesn't work anymore when surround.vim is loaded. Too bad, it sure looks great…
- pkrumins 18y agoTry 'R' instead of 's' that you were used to. OR Edit surround.vim and comment out the 's' mappings in visual mode. Like this: " if !hasmapto("<Plug>Vsurround","v") " if exists(":xmap") " xmap s <Plug>Vsurround " else " vmap s <Plug>Vsurround " endif " endif " if !hasmapto("<Plug>VSurround","v") " if exists(":xmap") " xmap S <Plug>VSurround " else " vmap S <Plug>VSurround " endif " endif
- thamer 18y ago'R' replaces the whole line, so that won't do. I commented the script as you suggested and it works. Thank you!
- sofal 18y agoIf I'm not mistaken, I believe that pressing c instead of s in that situation will do the exact same thing.
- thomasmallen 18y ago<!-- Ugh. Surround is OK, but sucks for wrapping in HTML tags. If I select the line: --> Hello! <!-- And use stp (surround selection with <p/>) I get: --> <p> Hello! </p> <!-- Instead of --> <p>Hello!</p> <!-- The workaround? ^v$ which is tedious. I recommend mapping this for those times when you want to wrap the current line quickly in XML tags. function! TagWrapper() let a:tag = input("Tag: ") normal `> exe "normal a</" . a:tag . ">" normal `< exe "normal i<" . a:tag . ">" endfunction -->
- pkrumins 18y agoThis plugin does not define 'stp'. You must be using some other plugin that has this mapping. The plugin I wrote about wraps HTML around perfectly. Try: ysiWt<p> Or if you knew the tag you were going to wrap your "Hello!" in, then in insert mode you could have pressed: <CTRL+s>t<p>.
- thomasmallen 18y agoNo, the plugin does define stp. :help Surround The pattern you have there ("ysiWtp", < is unnecessary, as is >) is actually not thoroughly tested (as mentioned in the docs) and is used when not in a visual selection. In a visual selection, you use "s" followed by what you want to surround with, e.g. s"
- pkrumins 18y agoYou must have a different surround.vim script. Perhaps someone else wrote a script and called "surround.vim" as well. The one I am talking about does not define stp and requires < > between tags. What does your 'stp' do? Edit: I see what you did there. You were in visual mode!
- thomasmallen 18y agoOf course. surround.vim couldn't get away with clobbering "s" in normal mode.
- tdavis 18y agoI've been looking for a plugin that does precisely this. Thank you Peteris, you've got another subscriber ;)
- pkrumins 18y agoThank you! :)
- kilowatt 18y agoI just made a plugin recently for on the fly Python checking with squiggly underlines, like a "real" IDE: pyflakes.vim http://www.vim.org/scripts/script.php?script_id=2441 http://www.vim.org/scripts/script.php?script_id=2441 (Make sure you grab a Python 2.5/gvim--required ATM--build from the link on that page as well.)
- pmarin 18y agoMy favorite vim plugin is to not use any plugin: use the filter command "!", the unix way.
- newsycaccount 18y agomore on "!": Run the given cmd/pipeline, and put it's output at the current cursor location: :r ! <cmd> Filter the whole buffer through the given cmd/pipeline: :%! <cmd> Filter a visual selection through the given cmd/pipeline: make selection (with mouse if you have :set mouse=a or gvim, or with any of the variations on 'v'), then hit '!' you will pop into a command line like this: :'<,'>! <cmd> '< is the beginning of the visual selection, and '> is the end.
- orib 18y agoSure, but some things (eg, surround.vim) can't be emulated with that.
- pmarin 18y agogive me an example of something that i can't filter in a sed/grep/ed/awk/perl script.