changeset 183:8b37877d309f

Merged changes.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 20 Jul 2014 19:36:55 -0700
parents c1e0af8b032d (current diff) 94a131d9a200 (diff)
children 4504d9bf9861
files .hgsubstate vim/vimrc
diffstat 5 files changed, 113 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsubstate	Sun Jun 01 15:34:00 2014 -0700
+++ b/.hgsubstate	Sun Jul 20 19:36:55 2014 -0700
@@ -17,13 +17,13 @@
 af8514b79c046a6bb447021b81351edb050ac69f vim/bundle/piecrust
 114f8e5c204f1cac9b2443065910fa182de39fb8 vim/bundle/powerline
 626a3a9d6faa029ea37d5b90e5067d8744f2ccfc vim/bundle/pythonmode
-1a93cbb14f537c001a52a43b94309d6c625b5953 vim/bundle/ragtag
+a90b2b60454fabe9a969d00b5d7f8d752ab61bd4 vim/bundle/ragtag
 2a3c5f8e3c26a57b8eb4cfc4be79615a1c508ef6 vim/bundle/repeat
 528a59f26d12278698bb946f8fb82a63711eec21 vim/bundle/solarized
 7a32e0866bfea26cf7781935289df131d1d0c0e0 vim/bundle/supertab
 42e9b46e7a20a2f394664874c7bbd9d6f6c39e8a vim/bundle/surround
 ffe3085a804f6a668987af45ff5edf953ff2ff58 vim/bundle/syntastic
-dbc05b24a3da1541a211a2f6513777145258577a vim/bundle/tagbar
+614b5b244f3a7a9e0174ebcf73c809de6e62e32c vim/bundle/tagbar
 869c05195086dd1af9fe39e49621f9f880b6f07c vim/bundle/twig
 b9d1fa7d460dac878cbc8c945a45439d92ce0cb2 vim/bundle/vimroom
 a884f3a161fa3cd8c996eb53a3d1c68631f60c21 vim/bundle/yankring
--- a/hgrc/hgrc-Windows_NT	Sun Jun 01 15:34:00 2014 -0700
+++ b/hgrc/hgrc-Windows_NT	Sun Jul 20 19:36:55 2014 -0700
@@ -1,5 +1,5 @@
 [ui]
-ssh = "TortoisePlink.exe" -ssh -2 -batch -C
+ssh = "%USERPROFILE%\Dropbox\Utilities\plink.exe" -ssh -2 -batch -C
 
 [extdiff]
 cmds.wdiff = "C:\Program Files (x86)\WinMerge\WinMergeU.exe"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/ftplugin/help.vim	Sun Jul 20 19:36:55 2014 -0700
@@ -0,0 +1,5 @@
+" Easy help navigation for Vim.
+
+nnoremap <buffer> <CR> <C-]>
+nnoremap <buffer> <BS> <C-T>
+
--- a/vim/vimrc	Sun Jun 01 15:34:00 2014 -0700
+++ b/vim/vimrc	Sun Jul 20 19:36:55 2014 -0700
@@ -219,7 +219,7 @@
 let g:ctrlp_map = ''
 
 " Ctrl-P should manage the working directory.
-let g:ctrlp_working_path_mode = 2
+let g:ctrlp_working_path_mode = 'ra'
 
 " Ctrl-P should however ignore some stuff.
 let g:ctrlp_custom_ignore = {
@@ -279,6 +279,12 @@
 
 if has("autocmd")
 
+    augroup VimRCAutoCWD
+        au!
+
+        autocmd BufEnter * call s:SetProjectRootCwd()
+    augroup END
+
     augroup VimRCFileTypeSettings
         au!
     
@@ -318,23 +324,23 @@
 noremap <C-Tab>   :tabnext<cr>
 noremap <C-S-Tab> :tabprevious<cr>
 
+
 " Window navigation
 nnoremap <C-up> :wincmd k<cr>
 nnoremap <C-down> :wincmd j<cr>
 nnoremap <C-left> :wincmd h<cr>
 nnoremap <C-right> :wincmd l<cr>
 
-" Open NERDtree.
-nnoremap <F2> :NERDTreeToggle %:p:h<cr>
+" Switch buffers.
+nnoremap <F2> :execute ("buffer " . bufname("#"))<cr>
 
-" Switch buffers.
-nnoremap <F3> :execute ("buffer " . bufname("#"))<cr>
-
-" Gundo.
-nnoremap <F5> :GundoToggle<cr>
+" NERDTree.
+nnoremap <F3> :call <SID>ToggleNERDTree()<cr>
+nnoremap <F4> :call <SID>FindInNERDTree()<cr>
 
 " Tagbar.
-nnoremap <F8> :TagbarToggle<cr>
+nnoremap <F5> :TagbarToggle<cr>
+nnoremap <F6> :TagbarOpenAutoClose<cr>
 
 " Common typos.
 nnoremap ; :
@@ -363,7 +369,8 @@
 " Ctrl-P mappings.
 nnoremap <silent> <C-p> :CtrlP<cr>
 nnoremap <silent> <C-o> :CtrlPBuffer<cr>
-nnoremap <silent> <C-i> :CtrlPMRU<cr>
+nnoremap <silent> <C-i> :CtrlPTag<cr>
+nnoremap <silent> <Tab> :CtrlPMRUFiles<cr>
 
 " Switch between FR and US keyboard layouts.
 nnoremap <C-l>f :setlocal keymap=french<cr>
@@ -463,6 +470,65 @@
     call cursor(l, c)
 endfunction
 
+function! s:FindProjectRoot(cur, marker) abort
+    let l:cur = a:cur
+    let l:previous_cur = ''
+    let l:slash = '/'
+    if has('win32')
+        let l:slash = '\\'
+    endif
+    while l:cur != l:previous_cur
+        let l:marker_path = l:cur . l:slash . a:marker
+        if glob(l:marker_path) != ''
+            return fnamemodify(l:cur, ':p')
+        endif
+        let l:previous_cur = l:cur
+        let l:cur = fnamemodify(l:cur, ':h')
+    endwhile
+    return ''
+endfunction
+
+function! s:SetProjectRootCwd() abort
+    let l:cur_file_dir = expand('%:p:h', 1)
+    if l:cur_file_dir =~ '\v^.+://'
+        return
+    endif
+    let l:root = l:cur_file_dir
+    let l:markers = g:ctrlp_root_markers[:]
+    let l:markers += ['.git', '.hg', '.svn', '.bzr', '_darcs']
+    for marker in l:markers
+        let l:proj_root = s:FindProjectRoot(l:cur_file_dir, marker)
+        if l:proj_root != ''
+            let l:root = l:proj_root
+            break
+        endif
+    endfor
+    execute 'lcd!' fnameescape(l:root)
+endfunction
+
+function! s:ToggleNERDTree() abort
+    let l:was_open = nerdtree#isTreeOpen()
+    NERDTreeToggle
+    if !l:was_open
+        wincmd p
+        NERDTreeCWD
+        wincmd p
+        NERDTreeFind
+    endif
+endfunction
+
+function! s:FindInNERDTree() abort
+    if !nerdtree#isTreeOpen()
+        call s:ToggleNERDTree()
+    else
+        if getbufvar('%', 'NERDTreeType') != ''
+            wincmd p
+        else
+            NERDTreeFind
+        endif
+    endif
+endfunction
+
 " }}}
 
 " Temporary stuff {{{
@@ -474,9 +540,20 @@
 command! LawrenciumEnableTrace  :call lawrencium#debugtrace(1)
 command! LawrenciumDisableTrace :call lawrencium#debugtrace(0)
 
+let g:autotags_debug = 1
+
 " Enable debugging PieCrust
 let g:piecrust_debug = 1
 let g:piecrust_trace = 0
 
 " }}}
 
+" Local override {{{
+
+let s:local_vimrc = s:vim_home.'/vimrc.local'
+if filereadable(s:local_vimrc)
+    execute 'source' s:local_vimrc
+endif
+
+" }}}
+
--- a/vimperatorrc	Sun Jun 01 15:34:00 2014 -0700
+++ b/vimperatorrc	Sun Jul 20 19:36:55 2014 -0700
@@ -43,11 +43,28 @@
 nnoremap <leader>b :downloads<cr>
 
 " Super minimal UI
-set toolbars=noaddons,nobookmarks,nomenu,nonavigation,notabs
+"set toolbars=noaddons,nobookmarks,nomenu,nonavigation,notabs
 
 " Websites with useful keyboard shortcuts already
 ignorekeys add -except=:,J,K,b fastmail.fm
 ignorekeys add -except=:,J,K,b feedly.com
 ignorekeys add -except=:,J,K,b mnmlrdr.com
+ignorekeys add -except=:,J,K,b newsblur.com
+
+" The new Firefox fucked up vimperator's ability to hide
+" things. Let's do it ourselves for now.
+map <silent> <F2> :js toggle_ui()<CR>
+
+:js << EOF
+function toggle_ui() {
+    var nb = document.getElementById('nav-bar');
+    nb.style.visibility = (nb.style.visibility == '') ? 'collapse' : '';
+    nb.style.overflow = (nb.style.height == '') ? '' : 'hidden';
+
+    var tb = document.getElementById('TabsToolbar');
+    tb.style.visibility = (tb.style.visibility == '') ? 'hidden' : '';
+    }
+toggle_ui();
+EOF
 
 " vim: ft=vim