News for hackers. Stuff that matters.

Ask HN: Anything fancy in your .vimrc?

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>
( 3 comments | 2 points | on HN )
Re:Ask HN: Anything fancy in your .vimrc? by goldfeld on Monday February 11, 2013 @03:07PM (#5202916)
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 "*"'."}'")
  endfunction
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.

Re:Ask HN: Anything fancy in your .vimrc? by logn on Tuesday February 12, 2013 @03:45AM (#5205820)
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
Re:Ask HN: Anything fancy in your .vimrc? by ryanaghdam on Monday February 11, 2013 @06:59PM (#5204282)
Does Vundle <https://github.com/gmarik/vundle>; count as something fancy?