Hacker News new | comments | show | ask | jobs | submit login
Ask HN: Anything fancy in your .vimrc?
2 points by gaving on Feb 11, 2013 | hide | past | web | favorite | 3 comments
Anything particularly esoteric in your vimrc?

Couple I find invaluable:-

  " Yank block visual selection to space separated line
  vnoremap <Leader>y "+y:let @+ = join(map(split(@+, '\n'), 'substitute(v:val, "^\\s\\+", "", "")'), " ")<CR>

  " Yank block visual selection to comma separated line
  vnoremap <Leader>Y "+y:let @+ = join(map(split(@+, '\n'), 'substitute(v:val, "^\\s\\+\\\|\\s\\+$", "", "g")'), ",")<CR>

I have too many. I have many ideas for plugins as I'm getting into vimscripting (and have since released one) and I use vimrc as a staging area for those ideas to grow on me.

Just last week I put this to have modified buffers in my statusline:

  set statusline+=%{GetModifiedBuffers()}
  function! GetModifiedBuffers()
    redir @b
    silent! buffers
    redir END
    return system('echo "'.@b.'"' . " | awk '$3 ~ /\+/ {printf ".'"  " $4 "*"'."}'")
I also have something I'm calling Streamline, which allows you to navigate relative lines while seeing absolute lines.

Also just yesterday I hacked something which allows me to block hjkl for more than one consecutive press, while binding their double presses to some other action. So pressing j once gets me down one line, pressing a second consecutive time activates Streamline which then, without a count, takes me to lines multiple of ten, so it's my way of scrolling when I don't know the outlook of the file (given a count of 4 while on line 37, Streamline would take you to line 44). This is still not on my online vimrc, but the rest is at github.com/goldfeld/dotfiles.

Working in data I often had tab delimited files. So you'd want your tabs to show up as real tabs when typed and not converted to spaces. Otherwise for code convention is almost always spaces. So I use this.

  syntax on
  filetype plugin indent on
  :set paste
  set shiftwidth=4
  set tabstop=4
  autocmd FileType ruby,eruby,yaml,java,clojure,html,css,xml
  \ setlocal shiftwidth=2 |
  \ setlocal tabstop=2 |
  \ setlocal expandtab

Does Vundle <https://github.com/gmarik/vundle>; count as something fancy?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact