Mercurial > dotfiles
changeset 409:63463782d1cd
Merge changes.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 10 Jan 2018 00:05:36 -0800 |
parents | 1da269c50dca (diff) c32b9b172314 (current diff) |
children | 72365ec18f54 |
files | vim/vimrc |
diffstat | 27 files changed, 629 insertions(+), 2292 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Wed Sep 13 10:58:17 2017 -0700 +++ b/.hgignore Wed Jan 10 00:05:36 2018 -0800 @@ -8,8 +8,10 @@ .netrwhist git/gitconfig-local hgrc/hgrc-local +lib/ vim/vimrc-local vim/vimrc-local-pre +vim/bundle/ vim/local/ weechat/logs weechat/*.log
--- a/.hgsub Wed Sep 13 10:58:17 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ - -vim/bundle/gundo = https://bitbucket.org/sjl/gundo.vim -vim/bundle/badwolf = https://bitbucket.org/sjl/badwolf - -vim/bundle/ag = [git]https://github.com/rking/ag.vim.git -vim/bundle/commentary = [git]https://github.com/tpope/vim-commentary.git -vim/bundle/easymotion = [git]https://github.com/Lokaltog/vim-easymotion.git -vim/bundle/fugitive = [git]https://github.com/tpope/vim-fugitive.git -vim/bundle/haml = [git]https://github.com/tpope/vim-haml.git -vim/bundle/interestingwords = [git]https://github.com/vasconcelloslf/vim-interestingwords.git -vim/bundle/jinja = [git]https://github.com/mitsuhiko/vim-jinja.git -vim/bundle/less = [git]https://github.com/groenewege/vim-less.git -vim/bundle/lightline = [git]https://github.com/itchyny/lightline.vim.git -vim/bundle/linediff = [git]https://github.com/AndrewRadev/linediff.vim.git -vim/bundle/markdown = [git]https://github.com/tpope/vim-markdown.git -vim/bundle/nerdtree = [git]https://github.com/scrooloose/nerdtree.git -vim/bundle/pathogen = [git]https://github.com/tpope/vim-pathogen.git -vim/bundle/powerline = [git]https://github.com/Lokaltog/vim-powerline.git -vim/bundle/projectroot = [git]https://github.com/dbakker/vim-projectroot.git -vim/bundle/python-pep8-indent = [git]https://github.com/hynek/vim-python-pep8-indent.git -vim/bundle/pythonmode = [git]https://github.com/klen/python-mode.git -vim/bundle/ragtag = [git]https://github.com/tpope/vim-ragtag.git -vim/bundle/repeat = [git]https://github.com/tpope/vim-repeat.git -vim/bundle/scratch = [git]https://github.com/mtth/scratch.vim.git -vim/bundle/sleuth = [git]https://github.com/tpope/vim-sleuth.git -vim/bundle/solarized = [git]https://github.com/altercation/vim-colors-solarized.git -vim/bundle/supertab = [git]https://github.com/ervandew/supertab.git -vim/bundle/surround = [git]https://github.com/tpope/vim-surround.git -vim/bundle/syntastic = [git]https://github.com/scrooloose/syntastic.git -vim/bundle/tagbar = [git]https://github.com/majutsushi/tagbar.git -vim/bundle/todo.txt = [git]https://github.com/freitass/todo.txt-vim.git -vim/bundle/twig = [git]https://github.com/beyondwords/vim-twig.git -vim/bundle/vimroom = [git]https://github.com/mikewest/vimroom.git -vim/bundle/yankring = [git]https://github.com/vim-scripts/YankRing.vim.git - -vim/bundle/colorschemes = [git]https://github.com/ludovicchabant/vim-colorschemes.git -vim/bundle/ctrlp = [git]https://github.com/ludovicchabant/ctrlp.vim.git -vim/bundle/ctrlp-py-matcher = [git]https://github.com/ludovicchabant/ctrlp-py-matcher.git - -vim/bundle/gutentags = https://bitbucket.org/ludovicchabant/vim-gutentags -vim/bundle/lawrencium = https://bitbucket.org/ludovicchabant/vim-lawrencium -vim/bundle/piecrust = https://bitbucket.org/ludovicchabant/vim-piecrust - -mutt/mutt-colors-solarized = [git]https://github.com/altercation/mutt-colors-solarized - -lib/hg/mercurial-cli-templates = https://bitbucket.org/sjl/mercurial-cli-templates -lib/hg/hg-prompt = https://bitbucket.org/sjl/hg-prompt -lib/hg/mutable-history = https://www.mercurial-scm.org/repo/evolve -lib/hg/terse-status = https://bitbucket.org/durin42/terse-status -lib/hg/path-pattern = https://bitbucket.org/Mekk/mercurial-path_pattern - -lib/hg/hg-git = https://bitbucket.org/ludovicchabant/hg-git -lib/hg/hg-git-sync = https://bitbucket.org/ludovicchabant/hg-git-sync -lib/hg/onsub = https://bitbucket.org/ludovicchabant/onsub -lib/hg/allpaths = https://bitbucket.org/ludovicchabant/allpaths -lib/hg/fast-hg-prompt = https://bitbucket.org/ludovicchabant/fast-hg-prompt - -lib/fish/virtualfish = [git]https://github.com/adambrenecki/virtualfish.git - -lib/iterm2/color-schemes = [git]https://github.com/mbadolato/iTerm2-Color-Schemes.git - -pentadactyl/plugins/pintaboard = [git]https://github.com/bnbeckwith/pintaboard.git -
--- a/.hgsubstate Wed Sep 13 10:58:17 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -5c5203cc2a62a65eea3bce3931a8e41938341bcd lib/fish/virtualfish -772d75b1a0309b89b96c4ad1c0b2f284104de974 lib/hg/allpaths -871944d0db5cc714bfee2bd6087c380d3ef6a96f lib/hg/fast-hg-prompt -4d63f2eb60fd6399d5f50d4703d8ced8132ce359 lib/hg/hg-git -7d99080f276f49e3638ba13b4f5c1cd2dc4cc21f lib/hg/hg-git-sync -5334581e231a5167d03689ff47b3a6fdf082011c lib/hg/hg-prompt -1fc4a9fbead7e0acc4c828b346f3be2658ec3df9 lib/hg/mercurial-cli-templates -21f06d9322316c9cc17eaebf5d4f40b9f24304f6 lib/hg/mutable-history -003eee5497e078abd14b3785ab1ff817e585ae8a lib/hg/onsub -300b427e177be816ab923e8c21efdc0fa3fdcee4 lib/hg/path-pattern -2d9820cf595263bc7c651295b83f02525a23ca4a lib/hg/terse-status -518f474f8414e3553fab0e909e5087bc06cc5279 lib/iterm2/color-schemes -3b23c55eb43849975656dd89e3f35dacd2b93e69 mutt/mutt-colors-solarized -47ee7952433b327724bac20ef720ec22e0e0782b pentadactyl/plugins/pintaboard -4a0dd6e190f446e5a016b44fdaa2feafc582918e vim/bundle/ag -451b8111344a3a8117996f4e32b6a255b629f87b vim/bundle/badwolf -567ee4a3657d8e732f67abf228e51c220ea81ec4 vim/bundle/colorschemes -be79030b3e8c0ee3c5f45b4333919e4830531e80 vim/bundle/commentary -7fa89fec125ce60a341f7c37dd769a8a31c49359 vim/bundle/ctrlp -2f6947480203b734b069e5d9f69ba440db6b4698 vim/bundle/ctrlp-py-matcher -e4d71c7ba45baf860fdaaf8c06cd9faebdccbd50 vim/bundle/easymotion -913fff1cea3aa1a08a360a494fa05555e59147f5 vim/bundle/fugitive -1d84591fff04caebab75cba2294fc3843f0a4a29 vim/bundle/gundo -f7a417234deadb6283bfb2c437d4f11cd2f7ab55 vim/bundle/gutentags -d580aa3a3f8b576425188be64381047c7b993112 vim/bundle/haml -0278ab2ede1ea94f2523c53d6d694a84479b2124 vim/bundle/interestingwords -8a8f0ed97c1751d304cf5b7241f2fe27b0e61f81 vim/bundle/jinja -c9169233d45ae2f0fefa0feb9ee816a87c6b05c8 vim/bundle/lawrencium -6e818d5614d5fc18d95a48c92b89e6db39f9e3d6 vim/bundle/less -96d6d108bf6cd7bfdaa9872add4bb47d6ddbf7fd vim/bundle/lightline -84165cad088402ef04906dfc9cd2eb4b2bf071fa vim/bundle/linediff -a7dbc314569aa85db80c106d73b1664e385b6ae7 vim/bundle/markdown -5782b228e495c733af4ba2e547e5dc44ebc8bc25 vim/bundle/nerdtree -e7857bed4e0705f91f781dbe99706f07d08d104b vim/bundle/pathogen -af8514b79c046a6bb447021b81351edb050ac69f vim/bundle/piecrust -114f8e5c204f1cac9b2443065910fa182de39fb8 vim/bundle/powerline -68787126ebbbe50e120e497ff63696b22f636840 vim/bundle/projectroot -e0be8bfc4ff68e6eb26662fe3a1881cba225a44e vim/bundle/python-pep8-indent -ed80fdebb5eb5e0e7e404484371221633a3926f6 vim/bundle/pythonmode -5762a937f39d165b9773376960539f8c32788325 vim/bundle/ragtag -070ee903245999b2b79f7386631ffd29ce9b8e9f vim/bundle/repeat -1644a567c103c71e2f91bc9a362e906c515d6e4a vim/bundle/scratch -dfe0a33253c61dd8fac455baea4ec492e6cf0fe3 vim/bundle/sleuth -528a59f26d12278698bb946f8fb82a63711eec21 vim/bundle/solarized -22aac5c2cb6a8ebe906bf1495eb727717390e62e vim/bundle/supertab -e49d6c2459e0f5569ff2d533b4df995dd7f98313 vim/bundle/surround -5e1b26c1724448c9d870b08dc93ce71528489333 vim/bundle/syntastic -59ea6d656a0b5190f6f8f3fff44197d752782cc6 vim/bundle/tagbar -6845221d45bd62e604c2024bc511a56e79d1118b vim/bundle/todo.txt -869c05195086dd1af9fe39e49621f9f880b6f07c vim/bundle/twig -b9d1fa7d460dac878cbc8c945a45439d92ce0cb2 vim/bundle/vimroom -28854abef8fa4ebd3cb219aefcf22566997d8f65 vim/bundle/yankring
--- a/fish/config.fish Wed Sep 13 10:58:17 2017 -0700 +++ b/fish/config.fish Wed Jan 10 00:05:36 2018 -0800 @@ -4,15 +4,20 @@ set -g -x fish_greeting 'Hello.' # Homebrew. -set -g -x PATH /usr/local/sbin $PATH -set -g -x PATH /usr/local/bin $PATH +#set -g -x PATH /usr/local/sbin $PATH +#set -g -x PATH /usr/local/bin $PATH # My own stuff. -set -g -x PATH $HOME/.local/bin $PATH -set -g -x PATH $HOME/bin $PATH +if test -d $HOME/.local/bin + set -g -x PATH $HOME/.local/bin $PATH +end +if test -d $HOME/bin + set -g -x PATH $HOME/bin $PATH +end set -g -x OS MacOSX set -g -x EDITOR vim set -g -x SHELL fish +set -g -x TERM screen-256color-bce # Python. set -g -x VIRTUAL_ENV_DISABLE_PROMPT 1 @@ -20,10 +25,21 @@ # Go. set -g -x GOPATH /usr/local/Cellar/go/1.4/gocode +if type -q git + set -g -x __local_has_git +end +if type -q hg + set -g -x __local_has_hg +end +if test -e $HOME/.local/bin/fast-hg-bookmark + set -g -x __local_has_fast_hg_bookmark +end + # }}} # Aliases {{{ +# Run Tmux in UTF8 and 256 colours always. alias tm 'tmux -u2' # }}} @@ -46,30 +62,37 @@ end function prompt_char - if git branch >/dev/null 2>/dev/null - printf '±' ; return + if set -q __local_has_git + if git branch >/dev/null 2>/dev/null + printf '±' ; return + end + if hg root >/dev/null 2>/dev/null + printf '☿' ; return + end + echo '○' end - if hg root >/dev/null 2>/dev/null - printf '☿' ; return - end - echo '○' end function hg_prompt - set_color magenta - printf '%s' (fast-hg-bookmark 2>/dev/null) - set_color normal + if set -q __local_has_hg + and set -q __local_has_fast_hg_bookmark + set_color magenta + printf '%s' (fast-hg-bookmark 2>/dev/null) + set_color normal + end end function git_prompt - if git root >/dev/null 2>&1 - set_color normal - printf ' on ' - set_color magenta - printf '%s' (git currentbranch ^/dev/null) - set_color green - git_prompt_status - set_color normal + if set -q __local_has_git + if git root >/dev/null 2>&1 + set_color normal + printf ' on ' + set_color magenta + printf '%s' (git currentbranch ^/dev/null) + set_color green + git_prompt_status + set_color normal + end end end @@ -126,24 +149,12 @@ # }}} -# Virtualenv wrapper for Fish {{{ - -eval (/usr/local/bin/python2.7 -m virtualfish) - -#set -g VIRTUALFISH_COMPAT_ALIASES # uncomment for virtualenvwrapper-style commands -#. $HOME/.config/fish/virtualfish/virtual.fish -# optional plugins -#. path/to/auto_activation.fish -#. path/to/global_requirements.fish -#. path/to/projects.fish - -# }}} - # Local Settings {{{ if test -s $HOME/.config/fish/local.fish . $HOME/.config/fish/local.fish end +#eval (/usr/local/bin/python -m virtualfish) # }}}
--- a/git/gitconfig Wed Sep 13 10:58:17 2017 -0700 +++ b/git/gitconfig Wed Jan 10 00:05:36 2018 -0800 @@ -1,6 +1,6 @@ [user] -name = Ludovic Chabant -email = ludovic@chabant.com + name = Ludovic Chabant + email = ludovic@chabant.com [push] default = simple @@ -18,3 +18,7 @@ [mergetool "sourcetree"] cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\" trustExitCode = true +[core] + excludesfile = /Users/abdul/.gitignore_global +[commit] + template = /Users/abdul/.stCommitMsg
--- a/hgrc/hgignore Wed Sep 13 10:58:17 2017 -0700 +++ b/hgrc/hgignore Wed Jan 10 00:05:36 2018 -0800 @@ -2,6 +2,7 @@ *~ *.pyo +*.orig .DS_Store Thumbs.db
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/install.cfg Wed Jan 10 00:05:36 2018 -0800 @@ -0,0 +1,58 @@ +[subrepos] +vim/bundle/ag = [git]https://github.com/rking/ag.vim.git +vim/bundle/badwolf = https://bitbucket.org/sjl/badwolf +vim/bundle/colorschemes = [git]https://github.com/ludovicchabant/vim-colorschemes.git +vim/bundle/commentary = [git]https://github.com/tpope/vim-commentary.git +vim/bundle/ctrlp = [git]https://github.com/ludovicchabant/ctrlp.vim.git +vim/bundle/ctrlp-py-matcher = [git]https://github.com/ludovicchabant/ctrlp-py-matcher.git +vim/bundle/easymotion = [git]https://github.com/Lokaltog/vim-easymotion.git +vim/bundle/fish = [git]https://github.com/dag/vim-fish.git +vim/bundle/fugitive = [git]https://github.com/tpope/vim-fugitive.git +vim/bundle/gundo = https://bitbucket.org/sjl/gundo.vim +vim/bundle/gutentags = https://bitbucket.org/ludovicchabant/vim-gutentags +vim/bundle/haml = [git]https://github.com/tpope/vim-haml.git +vim/bundle/interestingwords = [git]https://github.com/vasconcelloslf/vim-interestingwords.git +vim/bundle/jinja = [git]https://github.com/mitsuhiko/vim-jinja.git +vim/bundle/lawrencium = https://bitbucket.org/ludovicchabant/vim-lawrencium +vim/bundle/less = [git]https://github.com/groenewege/vim-less.git +vim/bundle/lightline = [git]https://github.com/itchyny/lightline.vim.git +vim/bundle/linediff = [git]https://github.com/AndrewRadev/linediff.vim.git +vim/bundle/markdown = [git]https://github.com/tpope/vim-markdown.git +vim/bundle/nerdtree = [git]https://github.com/scrooloose/nerdtree.git +vim/bundle/pathogen = [git]https://github.com/tpope/vim-pathogen.git +vim/bundle/piecrust = https://bitbucket.org/ludovicchabant/vim-piecrust +vim/bundle/powerline = [git]https://github.com/Lokaltog/vim-powerline.git +vim/bundle/projectroot = [git]https://github.com/dbakker/vim-projectroot.git +vim/bundle/python-pep8-indent = [git]https://github.com/hynek/vim-python-pep8-indent.git +vim/bundle/pythonmode = [git]https://github.com/klen/python-mode.git +vim/bundle/ragtag = [git]https://github.com/tpope/vim-ragtag.git +vim/bundle/repeat = [git]https://github.com/tpope/vim-repeat.git +vim/bundle/scratch = [git]https://github.com/mtth/scratch.vim.git +vim/bundle/sleuth = [git]https://github.com/tpope/vim-sleuth.git +vim/bundle/solarized = [git]https://github.com/altercation/vim-colors-solarized.git +vim/bundle/supertab = [git]https://github.com/ervandew/supertab.git +vim/bundle/surround = [git]https://github.com/tpope/vim-surround.git +vim/bundle/syntastic = [git]https://github.com/scrooloose/syntastic.git +vim/bundle/tagbar = [git]https://github.com/majutsushi/tagbar.git +vim/bundle/todo.txt = [git]https://github.com/freitass/todo.txt-vim.git +vim/bundle/twig = [git]https://github.com/beyondwords/vim-twig.git +vim/bundle/vimroom = [git]https://github.com/mikewest/vimroom.git +vim/bundle/yankring = [git]https://github.com/vim-scripts/YankRing.vim.git + +lib/fish/virtualfish = [git]https://github.com/adambrenecki/virtualfish.git + +lib/hg/allpaths = https://bitbucket.org/ludovicchabant/allpaths +lib/hg/fast-hg-prompt = https://bitbucket.org/ludovicchabant/fast-hg-prompt +lib/hg/hg-git = https://bitbucket.org/ludovicchabant/hg-git +lib/hg/hg-git-sync = https://bitbucket.org/ludovicchabant/hg-git-sync +lib/hg/hg-prompt = https://bitbucket.org/sjl/hg-prompt +lib/hg/mercurial-cli-templates = https://bitbucket.org/sjl/mercurial-cli-templates +lib/hg/mutable-history = https://www.mercurial-scm.org/repo/evolve +lib/hg/onsub = https://bitbucket.org/ludovicchabant/onsub +lib/hg/path-pattern = https://bitbucket.org/Mekk/mercurial-path_pattern +lib/hg/terse-status = https://bitbucket.org/durin42/terse-status + +lib/iterm2/color-schemes = [git]https://github.com/mbadolato/iTerm2-Color-Schemes.git + +lib/mutt/mutt-colors-solarized = [git]https://github.com/altercation/mutt-colors-solarized +
--- a/install.cmd Wed Sep 13 10:58:17 2017 -0700 +++ b/install.cmd Wed Jan 10 00:05:36 2018 -0800 @@ -2,68 +2,5 @@ setlocal set CWD=%~dp0 - -:: VIM Files -if exist "%userprofile%\vimfiles" ( - set /P confirm=Will delete existing "%userprofile%\vimfiles". OK with that? Press CTRL-C to abort. - rmdir /Q /S "%userprofile%\vimfiles" -) - -if exist "%userprofile%\_vimrc" ( - set /P confirm=Will delete existing "%userprofile%\_vimrc". OK with that? Press CTRL-C to abort. - del /Q "%userprofile%\_vimrc" -) -echo set runtimepath+=%CWD:\=/%vim > "%userprofile%\_vimrc" -echo source %CWD:\=/%vim/vimrc >> "%userprofile%\_vimrc" - -:: Mercurial Files -if exist "%userprofile%\mercurial.ini" ( - set /P confirm=Will delete existing "%userprofile%\mercurial.ini". OK with that? Press CTRL-C to abort. - del /Q "%userprofile%\mercurial.ini" -) -echo %%include %CWD%hgrc\hgrc > "%userprofile%\mercurial.ini" -echo [ui] >> "%userprofile%\mercurial.ini" -echo ignore = %CWD:\=/%hgrc/hgignore >> "%userprofile%\mercurial.ini" -echo [extensions] >> "%userprofile%\mercurial.ini" -echo hggit = %CWD:\=/%lib/hg/hg-git/hggit/ >> "%userprofile%\mercurial.ini" -echo onsub = %CWD:\=/%lib/hg/onsub/onsub.py >> "%userprofile%\mercurial.ini" -echo allpaths = %CWD:\=/%lib/hg/allpaths/mercurial_all_paths.py >> "%userprofile%\mercurial.ini" -echo prompt = %CWD:\=/%lib/hg/hg-prompt/prompt.py >> "%userprofile%\mercurial.ini" -echo changelog = %CWD:\=/%lib/hg/changelog/changelog.py >> "%userprofile%\mercurial.ini" -echo evolve = %CWD:\=/%lib/hg/mutable-history/hgext/evolve.py >> "%userprofile%\mercurial.ini" -echo terse-status = %CWD:\=/%lib/hg/terse-status/terse-status.py >> "%userprofile%\mercurial.ini" -echo path-pattern = %CWD:\=/%lib/hg/path-pattern/mercurial_path_pattern.py >> "%userprofile%\mercurial.ini" +python %CWD%install.py -:: Git Files -if exist "%userprofile%\.gitconfig" ( - set /P confirm=Will delete existing "%userprofile%\.gitconfig". OK with that? Press CTRL-C to abort. - del /Q "%userprofile%\.gitconfig" -) -echo [include] > "%userprofile%\.gitconfig" -echo path = %CWD:\=/%git/gitconfig >> "%userprofile%\.gitconfig" - -:: Web Browser -if exist "%userprofile%\_pentadactylrc" ( - set /P confirm=Will delete existing "%userprofile%\_pentadactylrc". OK with that? Press CTRL-C to abort. - del /Q "%userprofile%\_pentadactylrc" -) -echo set runtimepath=~/.pentadactyl,%CWD:\=/%pentadactyl > "%userprofile%\_pentadactylrc" -echo source %CWD:\=/%pentadactyl/pentadactylrc >> "%userprofile%\_pentadactylrc" - -if exist "%userprofile%\_vimperatorrc" ( - set /P confirm=Will delete existing "%userprofile%\_vimperatorrc". OK with that? Press CTRL-C to abort. - del /Q "%userprofile%\_vimperatorrc" -) -echo set runtimepath=~/.vimperator,%CWD:\=/%vimperator > "%userprofile%\_vimperatorrc" -echo source %CWD:\=/%vimperator/vimperatorrc >> "%userprofile%\_vimperatorrc" - -:: Console 2 -if exist "%appdata%\Console\console.xml" ( - set /P confirm=Will delete existing Console2 settings. OK with that? Press CTRL-C to abort. - del /Q "%appdata%\Console\console.xml" -) -if not exist "%appdata%\Console" mkdir "%appdata%\Console" -copy "%CWD%console.xml" "%appdata%\Console\console.xml" - -setx GIT_SSH %USERPROFILE%\Dropbox\Utilities\plink.exe -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/install.py Wed Jan 10 00:05:36 2018 -0800 @@ -0,0 +1,260 @@ +import os +import os.path +import sys +import stat +import argparse +import functools +import subprocess +import configparser + + +dotfiles_dir = os.path.abspath(os.path.dirname(__file__)) + +is_nix = True +is_windows = False +if sys.platform == "win32": + is_nix = False + is_windows = True + + +def _p(*paths): + return os.path.join(dotfiles_dir, *paths).replace('/', os.sep) + + +def nixslash(path): + return path.replace('\\', '/') + + +def ensure_dir(path): + full_path = os.path.abspath(os.path.expanduser(path)) + if not os.path.isdir(full_path): + os.makedirs(full_path, mode=0o700) + + +def mklink(orig_rel_path, link_path, mode=None): + orig_full_path = os.path.join(dotfiles_dir, orig_rel_path) + link_full_path = os.path.abspath(os.path.expanduser(link_path)) + if os.path.islink(link_full_path): + print("Unlinking %s" % link_full_path) + os.unlink(link_full_path) + elif os.path.exists(link_full_path): + print("Removing %s" % link_full_path) + os.remove(link_full_path) + + print("%s -> %s" % (link_full_path, orig_full_path)) + os.symlink(orig_full_path, link_full_path) + if mode is not None: + os.chmod(link_full_path, mode) + + +def writelines(path, lines): + full_path = os.path.abspath(os.path.expanduser(path)) + print("%d lines to %s" % (len(lines), full_path)) + with open(full_path, 'w') as fp: + for l in lines: + fp.write(l) + fp.write('\n') + + +def only_on_nix(f): + @functools.wraps(f) + def decorator(*args, **kwargs): + if is_nix: + return f(*args, **kwargs) + return decorator + + +def only_on_win(f): + @functools.wraps(f) + def decorator(*args, **kwargs): + if is_windows: + return f(*args, **kwargs) + return decorator + + +def needs_config(f): + f.__dotfiles_needs_config__ = True + return f + + +def run_priority(prio): + def wrapper(f): + f.__dotfiles_priority__ = prio + return f + return wrapper + + +@only_on_nix +def install_bash(): + mklink('bashrc/bashrc', '.bashrc') + mklink('bashrc/bash_profile', '.bash_profile') + + +@only_on_nix +def install_fish(): + ensure_dir('~/.config') + mklink('fish', '~/.config/fish') + + +def install_vim(): + vimrc_path = '~/.vimrc' + if is_windows: + vimrc_path = '~/_vimrc' + writelines(vimrc_path, [ + 'set runtimepath+=%s' % nixslash(_p('vim')), + 'source %s' % nixslash(_p('vim', 'vimrc')) + ]) + + +@run_priority(2) # Needs to run before `fish`. +def install_mercurial(): + hgrc_path = '~/.hgrc' + if is_windows: + hgrc_path = '~/mercurial.ini' + writelines(hgrc_path, [ + '%%include %s' % _p('hgrc/hgrc'), + '[ui]', + 'ignore = %s' % _p('hgrc/hgignore'), + '[subrepos]', + 'git:allowed = true', + '[extensions]', + 'hggit = %s' % _p('lib/hg/hg-git/hggit/'), + 'onsub = %s' % _p('lib/hg/onsub/onsub.py'), + 'allpaths = %s' % _p('lib/hg/allpaths/mercurial_all_paths.py'), + 'prompt = %s' % _p('lib/hg/hg-prompt/prompt.py'), + 'evolve = %s' % _p('lib/hg/mutable-history/hgext3rd/evolve'), + 'terse-status = %s' % _p('lib/hg/terse-status/terse-status.py') + ]) + if is_nix: + print("Building fast-hg-prompt...") + compile_ok = True + try: + subprocess.check_call(['make'], cwd=_p('lib/hg/fast-hg-prompt')) + except subprocess.CalledProcessError: + compile_ok = False + + for n in ['bookmark', 'remote', 'status']: + link_path = os.path.expanduser('~/.local/bin/fast-hg-%s' % n) + if compile_ok: + mklink('lib/hg/fast-hg-prompt/fast-hg-%s' % n, link_path, + mode=(stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR)) + elif os.path.islink(link_path): + os.unlink(link_path) + elif os.path.exists(link_path): + os.remove(link_path) + + +def install_git(): + writelines('~/.gitconfig', [ + '[include]', + 'path = %s' % _p('git/gitconfig') + ]) + if is_windows: + subprocess.check_call( + ['setx', 'GIT_SSH', + '%USERPROFILE%\\Dropbox\\Utilities\\plink.exe'], + shell=True) + + +@only_on_nix +def install_tmux(): + mklink('tmux/tmux.conf', '~/.tmux.conf') + + +@only_on_nix +def install_weechat(): + mklink('weechat', '~/.weechat') + + +@only_on_nix +def install_mutt(): + writelines('~/.muttrc', [ + 'source "gpg2 -dq %s |"' % _p('mutt/variables.gpg'), + 'source "%s"' % _p('mutt/muttrc'), + 'source "%s"' % _p('lib/mutt/mutt-colors-solarized/' + 'mutt-colors-solarized-dark-256.muttrc') + ]) + + +def clone_git(url, path): + if os.path.isdir(path): + print("Skipping git clone of %s -- directory exists" % path) + print("git clone %s %s" % (url, path)) + ensure_dir(os.path.dirname(path)) + subprocess.check_call(['git', 'clone', url, path]) + + +def clone_hg(url, path): + if os.path.isdir(path): + print("Skipping hg clone of %s -- directory exists" % path) + print("hg clone %s %s" % (url, path)) + ensure_dir(os.path.dirname(path)) + env = dict(os.environ) + env.update({'HGPLAIN': '1'}) + subprocess.check_call(['hg', 'clone', url, path], env=env) + + +@needs_config +@run_priority(100) +def install_subrepos(cfg): + if not cfg.has_section('subrepos'): + return + + for path, url in cfg.items('subrepos'): + full_path = _p(path) + if url.startswith('[git]'): + clone_git(url[len('[git]'):], full_path) + else: + clone_hg(url, full_path) + + +def main(): + print("dotfiles installer") + print("python %s" % sys.version) + print("on %s" % sys.platform) + print('') + + cfg = configparser.ConfigParser() + cfg.read(_p('install.cfg')) + + mod_names = ['all'] + this_mod = sys.modules[__name__] + for an in dir(this_mod): + if not an.startswith('install_'): + continue + + name = an[len('install_'):] + mod_names.append(name) + + parser = argparse.ArgumentParser() + parser.add_argument( + 'module', nargs='*', + choices=mod_names, + help="Which module(s) to install. Defaults to all modules.") + args = parser.parse_args() + + funcs = [] + selected_mods = set(args.module) + if 'all' in selected_mods: + selected_mods = set(mod_names) + selected_mods.remove('all') + for mn in selected_mods: + func = getattr(this_mod, 'install_%s' % mn) + funcs.append((mn, func)) + + funcs = sorted(funcs, key=_get_install_func_priority, reverse=True) + for name, func in funcs: + print("Installing %s" % name) + if hasattr(func, '__dotfiles_needs_config__'): + func(cfg) + else: + func() + + +def _get_install_func_priority(func_info): + func = func_info[1] + return getattr(func, '__dotfiles_priority__', 0) + + +if __name__ == '__main__': + main()
--- a/install.sh Wed Sep 13 10:58:17 2017 -0700 +++ b/install.sh Wed Jan 10 00:05:36 2018 -0800 @@ -1,61 +1,5 @@ #!/bin/sh CWD="$( cd "$( dirname "$0" )" && pwd )" - -# BASH -# ---- -ln -s "$CWD/bashrc/bashrc" "$HOME/.bashrc" -ln -s "$CWD/bashrc/bash_profile" "$HOME/.bash_profile" - -# FISH -# ---- -mkdir -p $HOME/.config/fish/ -ln -s "$CWD/fish/config.fish" "$HOME/.config/fish/config.fish" - -# VIM -# --- -echo set runtimepath+=$CWD/vim > "$HOME/.vimrc" -echo source $CWD/vim/vimrc >> "$HOME/.vimrc" +python $CWD/install.py -# MERCURIAL -# --------- -echo %include $CWD/hgrc/hgrc > "$HOME/.hgrc" -echo [ui] >> "$HOME/.hgrc" -echo ignore = $CWD/hgrc/hgignore >> "$HOME/.hgrc" -echo [extensions] >> "$HOME/.hgrc" -echo hggit = $CWD/lib/hg/hg-git/hggit/ >> "$HOME/.hgrc" -echo onsub = $CWD/lib/hg/onsub/onsub.py >> "$HOME/.hgrc" -echo allpaths = $CWD/lib/hg/allpaths/mercurial_all_paths.py >> "$HOME/.hgrc" -echo prompt = $CWD/lib/hg/hg-prompt/prompt.py >> "$HOME/.hgrc" -echo changelog = $CWD/lib/hg/changelog/changelog.py >> "$HOME/.hgrc" -echo evolve = $CWD/lib/hg/mutable-history/hgext/evolve.py >> "$HOME/.hgrc" -echo terse-status = $CWD/lib/hg/terse-status/terse-status.py >> "$HOME/.hgrc" -echo path-pattern = $CWD/lib/hg/path-pattern/mercurial_path_pattern.py >> "$HOME/.hgrc" - -# GIT -# --- -ln -s "$CWD/git/gitconfig" "$HOME/.gitconfig" - -# WEB BROWSER -# ----------- -echo set runtimepath=~/.pentadactyl,$CWD/pentadactyl > "$HOME/.pentadactylrc" -echo source "$CWD/pentadactyl/pentadactylrc" >> "$HOME/.pentadactylrc" - -echo set runtimepath=~/.vimperator,$CWD/vimperator > "$HOME/.vimperatorrc" -echo source "$CWD/vimperator/vimperatorrc" >> "$HOME/.vimperatorrc" - -# TMUX -# ---- -ln -s "$CWD/tmux/tmux.conf" "$HOME/.tmux.conf" - -# WEECHAT -# ------ -ln -s "$CWD/weechat" "$HOME/.weechat" - -# MUTT -# ---- - -echo source \"gpg2 -dq $CWD/mutt/variables.gpg \|\" > "$HOME/.muttrc" -echo source "$CWD/mutt/muttrc" >> "$HOME/.muttrc" -echo source "$CWD/mutt/mutt-colors-solarized/mutt-colors-solarized-dark-256.muttrc" >> "$HOME/.muttrc" -
--- a/tmux/tmux.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/tmux/tmux.conf Wed Jan 10 00:05:36 2018 -0800 @@ -14,3 +14,5 @@ # Default to fish set -g default-command "fish" +set -g default-terminal "xterm" +
--- a/vim/bundle/minibufexpl/plugin/minibufexpl.vim Wed Sep 13 10:58:17 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1838 +0,0 @@ -" Mini Buffer Explorer <minibufexpl.vim> -" -" HINT: Type zR if you don't know how to use folds -" -" Script Info and Documentation {{{ -"============================================================================= -" Copyright: Copyright (C) 2002 & 2003 Bindu Wavell -" Permission is hereby granted to use and distribute this code, -" with or without modifications, provided that this copyright -" notice is copied with it. Like anything else that's free, -" minibufexplorer.vim is provided *as is* and comes with no -" warranty of any kind, either expressed or implied. In no -" event will the copyright holder be liable for any damamges -" resulting from the use of this software. -" -" Name Of File: minibufexpl.vim -" Description: Mini Buffer Explorer Vim Plugin -" Maintainer: Bindu Wavell <bindu@wavell.net> -" URL: http://vim.sourceforge.net/scripts/script.php?script_id=159 -" Last Change: Sunday, June 21, 2004 -" Version: 6.3.2 -" Derived from Jeff Lanzarotta's bufexplorer.vim version 6.0.7 -" Jeff can be reached at (jefflanzarotta@yahoo.com) and the -" original plugin can be found at: -" http://lanzarotta.tripod.com/vim/plugin/6/bufexplorer.vim.zip -" -" Usage: Normally, this file should reside in the plugins -" directory and be automatically sourced. If not, you must -" manually source this file using ':source minibufexplorer.vim'. -" -" You may use the default keymappings of -" -" <Leader>mbe - Opens MiniBufExplorer -" -" or you may want to add something like the following -" key mapping to your _vimrc/.vimrc file. -" -" map <Leader>b :MiniBufExplorer<cr> -" -" However, in most cases you won't need any key-bindings at all. -" -" <Leader> is usually backslash so type "\mbe" (quickly) to open -" the -MiniBufExplorer- window. -" -" Other keymappings include: <Leader>mbc to close the Explorer -" window, <Leader>mbu to force the Explorer to Update and -" <Leader>mbt to toggle the Explorer window; it will open if -" closed or close if open. Each of these key bindings can be -" overridden (see the notes on <Leader>mbe above.) -" -" You can map these additional commands as follows: -" -" map <Leader>c :CMiniBufExplorer<cr> -" map <Leader>u :UMiniBufExplorer<cr> -" map <Leader>t :TMiniBufExplorer<cr> -" -" NOTE: you can change the key binding used in these mappings -" so that they fit with your configuration of vim. -" -" You can also call each of these features by typing the -" following in command mode: -" -" :MiniBufExplorer " Open and/or goto Explorer -" :CMiniBufExplorer " Close the Explorer if it's open -" :UMiniBufExplorer " Update Explorer without navigating -" :TMiniBufExplorer " Toggle the Explorer window open and -" closed. -" -" To control where the new split window goes relative to the -" current window, use the setting: -" -" let g:miniBufExplSplitBelow=0 " Put new window above -" " current or on the -" " left for vertical split -" let g:miniBufExplSplitBelow=1 " Put new window below -" " current or on the -" " right for vertical split -" -" The default for this is read from the &splitbelow VIM option. -" -" By default we are now (as of 6.0.2) forcing the -MiniBufExplorer- -" window to open up at the edge of the screen. You can turn this -" off by setting the following variable in your .vimrc: -" -" let g:miniBufExplSplitToEdge = 0 -" -" If you would like a vertical explorer you can assign the column -" width (in characters) you want for your explorer window with the -" following .vimrc variable (this was introduced in 6.3.0): -" -" let g:miniBufExplVSplit = 20 " column width in chars -" -" IN HORIZONTAL MODE: -" It is now (as of 6.1.1) possible to set a maximum height for -" the -MiniBufExplorer- window. You can set the max height by -" letting the following variable in your .vimrc: -" -" let g:miniBufExplMaxSize = <max lines: defualt 0> -" -" setting this to 0 will mean the window gets as big as -" needed to fit all your buffers. -" -" NOTE: This was g:miniBufExplMaxHeight before 6.3.0; the old -" setting is backwards compatible if you don't use MaxSize. -" -" As of 6.2.2 it is possible to set a minimum height for the -" -MiniBufExplorer- window. You can set the min height by -" letting the following variable in your .vimrc: -" -" let g:miniBufExplMinSize = <min height: default 1> -" -" NOTE: This was g:miniBufExplMinHeight before 6.3.0; the old -" setting is backwards compatible if you don't use MinSize. -" -" IN VERTICAL MODE: (as of 6.3.0) -" By default the vertical explorer has a fixed width. If you put: -" -" let g:miniBufExplMaxSize = <max width: default 0> -" -" into your .vimrc then MBE will attempt to set the width of the -" MBE window to be as wide as your widest tab. The width will not -" exceed MaxSize even if you have wider tabs. -" -" Accepting the default value of 0 for this will give you a fixed -" width MBE window. -" -" You can specify a MinSize for the vertical explorer window by -" putting the following in your .vimrc: -" -" let g:miniBufExplMinSize = <min width: default 1> -" -" This will have no effect unless you also specivy MaxSize. -" -" By default we are now (as of 6.0.1) turning on the MoreThanOne -" option. This stops the -MiniBufExplorer- from opening -" automatically until more than one eligible buffer is available. -" You can turn this feature off by setting the following variable -" in your .vimrc: -" -" let g:miniBufExplorerMoreThanOne=1 -" -" (The following enhancement is as of 6.2.2) -" Setting this to 0 will cause the MBE window to be loaded even -" if no buffers are available. Setting it to 1 causes the MBE -" window to be loaded as soon as an eligible buffer is read. You -" can also set it to larger numbers. So if you set it to 4 for -" example the MBE window wouldn't auto-open until 4 eligibles -" buffers had been loaded. This is nice for folks that don't -" want an MBE window unless they are editing more than two or -" three buffers. -" -" To enable the optional mapping of Control + Vim Direction Keys -" [hjkl] to window movement commands, you can put the following into -" your .vimrc: -" -" let g:miniBufExplMapWindowNavVim = 1 -" -" To enable the optional mapping of Control + Arrow Keys to window -" movement commands, you can put the following into your .vimrc: -" -" let g:miniBufExplMapWindowNavArrows = 1 -" -" To enable the optional mapping of <C-TAB> and <C-S-TAB> to a -" function that will bring up the next or previous buffer in the -" current window, you can put the following into your .vimrc: -" -" let g:miniBufExplMapCTabSwitchBufs = 1 -" -" To enable the optional mapping of <C-TAB> and <C-S-TAB> to mappings -" that will move to the next and previous (respectively) window, you -" can put the following into your .vimrc: -" -" let g:miniBufExplMapCTabSwitchWindows = 1 -" -" -" NOTE: If you set the ...TabSwitchBufs AND ...TabSwitchWindows, -" ...TabSwitchBufs will be enabled and ...TabSwitchWindows -" will not. -" -" As of MBE 6.3.0, you can put the following into your .vimrc: -" -" let g:miniBufExplUseSingleClick = 1 -" -" If you would like to single click on tabs rather than double -" clicking on them to goto the selected buffer. -" -" NOTE: If you use the single click option in taglist.vim you may -" need to get an updated version that includes a patch I -" provided to allow both explorers to provide single click -" buffer selection. -" -" It is possible to customize the the highlighting for the tabs in -" the MBE by configuring the following highlighting groups: -" -" MBENormal - for buffers that have NOT CHANGED and -" are NOT VISIBLE. -" MBEChanged - for buffers that HAVE CHANGED and are -" NOT VISIBLE -" MBEVisibleNormal - buffers that have NOT CHANGED and are -" VISIBLE -" MBEVisibleChanged - buffers that have CHANGED and are VISIBLE -" -" You can either link to an existing highlighting group by -" adding a command like: -" -" hi link MBEVisibleChanged Error -" -" to your .vimrc or you can specify exact foreground and background -" colors using the following syntax: -" -" hi MBEChanged guibg=darkblue ctermbg=darkblue termbg=white -" -" NOTE: If you set a colorscheme in your .vimrc you should do it -" BEFORE updating the MBE highlighting groups. -" -" If you use other explorers like TagList you can (As of 6.2.8) put: -" -" let g:miniBufExplModSelTarget = 1 -" -" into your .vimrc in order to force MBE to try to place selected -" buffers into a window that does not have a nonmodifiable buffer. -" The upshot of this should be that if you go into MBE and select -" a buffer, the buffer should not show up in a window that is -" hosting an explorer. -" -" There is a VIM bug that can cause buffers to show up without -" their highlighting. The following setting will cause MBE to -" try and turn highlighting back on (introduced in 6.3.1): -" -" let g:miniBufExplForceSyntaxEnable = 1 -" -" MBE has had a basic debugging capability for quite some time. -" However, it has not been very friendly in the past. As of 6.0.8, -" you can put one of each of the following into your .vimrc: -" -" let g:miniBufExplorerDebugLevel = 0 " MBE serious errors output -" let g:miniBufExplorerDebugLevel = 4 " MBE all errors output -" let g:miniBufExplorerDebugLevel = 10 " MBE reports everything -" -" You can also set a DebugMode to cause output to be target as -" follows (default is mode 3): -" -" let g:miniBufExplorerDebugMode = 0 " Errors will show up in -" " a vim window -" let g:miniBufExplorerDebugMode = 1 " Uses VIM's echo function -" " to display on the screen -" let g:miniBufExplorerDebugMode = 2 " Writes to a file -" " MiniBufExplorer.DBG -" let g:miniBufExplorerDebugMode = 3 " Store output in global: -" " g:miniBufExplorerDebugOutput -" -" Or if you are able to start VIM, you might just perform these -" at a command prompt right before you do the operation that is -" failing. -" -" History: Moved to end of file -" -" Known Issues: When debugging is turned on and set to output to a window, there -" are some cases where the window is opened more than once, there -" are other cases where an old debug window can be lost. -" -" Several MBE commands can break the window history so <C-W>[pnw] -" might not take you to the expected window. -" -" Todo: Add the ability to specify a regexp for eligible buffers -" allowing the ability to filter out certain buffers that -" you don't want to control from MBE -" -"============================================================================= -" }}} - -" Startup Check -" -" Has this plugin already been loaded? {{{ -" -if exists('loaded_minibufexplorer') - finish -endif -let loaded_minibufexplorer = 1 -" }}} - -" Mappings and Commands -" -" MBE Keyboard Mappings {{{ -" If we don't already have keyboard mappings for MBE then create them -" -if !hasmapto('<Plug>MiniBufExplorer') - map <unique> <Leader>mbe <Plug>MiniBufExplorer -endif -if !hasmapto('<Plug>CMiniBufExplorer') - map <unique> <Leader>mbc <Plug>CMiniBufExplorer -endif -if !hasmapto('<Plug>UMiniBufExplorer') - map <unique> <Leader>mbu <Plug>UMiniBufExplorer -endif -if !hasmapto('<Plug>TMiniBufExplorer') - map <unique> <Leader>mbt <Plug>TMiniBufExplorer -endif - -" }}} -" MBE <Script> internal map {{{ -" -noremap <unique> <script> <Plug>MiniBufExplorer :call <SID>StartExplorer(1, -1)<CR>:<BS> -noremap <unique> <script> <Plug>CMiniBufExplorer :call <SID>StopExplorer(1)<CR>:<BS> -noremap <unique> <script> <Plug>UMiniBufExplorer :call <SID>AutoUpdate(-1)<CR>:<BS> -noremap <unique> <script> <Plug>TMiniBufExplorer :call <SID>ToggleExplorer()<CR>:<BS> - -" }}} -" MBE commands {{{ -" -if !exists(':MiniBufExplorer') - command! MiniBufExplorer call <SID>StartExplorer(1, -1) -endif -if !exists(':CMiniBufExplorer') - command! CMiniBufExplorer call <SID>StopExplorer(1) -endif -if !exists(':UMiniBufExplorer') - command! UMiniBufExplorer call <SID>AutoUpdate(-1) -endif -if !exists(':TMiniBufExplorer') - command! TMiniBufExplorer call <SID>ToggleExplorer() -endif -if !exists(':MBEbn') - command! MBEbn call <SID>CycleBuffer(1) -endif -if !exists(':MBEbp') - command! MBEbp call <SID>CycleBuffer(0) -endif " }}} - -" Global Configuration Variables -" -" Debug Level {{{ -" -" 0 = no logging -" 1=5 = errors ; 1 is the most important -" 5-9 = info ; 5 is the most important -" 10 = Entry/Exit -if !exists('g:miniBufExplorerDebugLevel') - let g:miniBufExplorerDebugLevel = 0 -endif - -" }}} -" Debug Mode {{{ -" -" 0 = debug to a window -" 1 = use vim's echo facility -" 2 = write to a file named MiniBufExplorer.DBG -" in the directory where vim was started -" THIS IS VERY SLOW -" 3 = Write into g:miniBufExplorerDebugOutput -" global variable [This is the default] -if !exists('g:miniBufExplorerDebugMode') - let g:miniBufExplorerDebugMode = 3 -endif - -" }}} -" Allow auto update? {{{ -" -" We start out with this off for startup, but once vim is running we -" turn this on. -if !exists('g:miniBufExplorerAutoUpdate') - let g:miniBufExplorerAutoUpdate = 0 -endif - -" }}} -" MoreThanOne? {{{ -" Display Mini Buf Explorer when there are 'More Than One' eligible buffers -" -if !exists('g:miniBufExplorerMoreThanOne') - let g:miniBufExplorerMoreThanOne = 2 -endif - -" }}} -" Split below/above/left/right? {{{ -" When opening a new -MiniBufExplorer- window, split the new windows below or -" above the current window? 1 = below, 0 = above. -" -if !exists('g:miniBufExplSplitBelow') - let g:miniBufExplSplitBelow = &splitbelow -endif - -" }}} -" Split to edge? {{{ -" When opening a new -MiniBufExplorer- window, split the new windows to the -" full edge? 1 = yes, 0 = no. -" -if !exists('g:miniBufExplSplitToEdge') - let g:miniBufExplSplitToEdge = 1 -endif - -" }}} -" MaxHeight (depreciated) {{{ -" When sizing the -MiniBufExplorer- window, assign a maximum window height. -" 0 = size to fit all buffers, otherwise the value is number of lines for -" buffer. [Depreciated use g:miniBufExplMaxSize] -" -if !exists('g:miniBufExplMaxHeight') - let g:miniBufExplMaxHeight = 0 -endif - -" }}} -" MaxSize {{{ -" Same as MaxHeight but also works for vertical splits if specified with a -" vertical split then vertical resizing will be performed. If left at 0 -" then the number of columns in g:miniBufExplVSplit will be used as a -" static window width. -if !exists('g:miniBufExplMaxSize') - let g:miniBufExplMaxSize = g:miniBufExplMaxHeight -endif - -" }}} -" MinHeight (depreciated) {{{ -" When sizing the -MiniBufExplorer- window, assign a minumum window height. -" the value is minimum number of lines for buffer. Setting this to zero can -" cause strange height behavior. The default value is 1 [Depreciated use -" g:miniBufExplMinSize] -" -if !exists('g:miniBufExplMinHeight') - let g:miniBufExplMinHeight = 1 -endif - -" }}} -" MinSize {{{ -" Same as MinHeight but also works for vertical splits. For vertical splits, -" this is ignored unless g:miniBufExplMax(Size|Height) are specified. -if !exists('g:miniBufExplMinSize') - let g:miniBufExplMinSize = g:miniBufExplMinHeight -endif - -" }}} -" Horizontal or Vertical explorer? {{{ -" For folks that like vertical explorers, I'm caving in and providing for -" veritcal splits. If this is set to 0 then the current horizontal -" splitting logic will be run. If however you want a vertical split, -" assign the width (in characters) you wish to assign to the MBE window. -" -if !exists('g:miniBufExplVSplit') - let g:miniBufExplVSplit = 0 -endif - -" }}} -" TabWrap? {{{ -" By default line wrap is used (possibly breaking a tab name between two -" lines.) Turning this option on (setting it to 1) can take more screen -" space, but will make sure that each tab is on one and only one line. -" -if !exists('g:miniBufExplTabWrap') - let g:miniBufExplTabWrap = 0 -endif - -" }}} -" Extended window navigation commands? {{{ -" Global flag to turn extended window navigation commands on or off -" enabled = 1, dissabled = 0 -" -if !exists('g:miniBufExplMapWindowNav') - " This is for backwards compatibility and may be removed in a - " later release, please use the ...NavVim and/or ...NavArrows - " settings. - let g:miniBufExplMapWindowNav = 0 -endif -if !exists('g:miniBufExplMapWindowNavVim') - let g:miniBufExplMapWindowNavVim = 0 -endif -if !exists('g:miniBufExplMapWindowNavArrows') - let g:miniBufExplMapWindowNavArrows = 0 -endif -if !exists('g:miniBufExplMapCTabSwitchBufs') - let g:miniBufExplMapCTabSwitchBufs = 0 -endif -" Notice: that if CTabSwitchBufs is turned on then -" we turn off CTabSwitchWindows. -if g:miniBufExplMapCTabSwitchBufs == 1 || !exists('g:miniBufExplMapCTabSwitchWindows') - let g:miniBufExplMapCTabSwitchWindows = 0 -endif - -" -" If we have enabled control + vim direction key remapping -" then perform the remapping -" -" Notice: I left g:miniBufExplMapWindowNav in for backward -" compatibility. Eventually this mapping will be removed so -" please use the newer g:miniBufExplMapWindowNavVim setting. -if g:miniBufExplMapWindowNavVim || g:miniBufExplMapWindowNav - noremap <C-J> <C-W>j - noremap <C-K> <C-W>k - noremap <C-H> <C-W>h - noremap <C-L> <C-W>l -endif - -" -" If we have enabled control + arrow key remapping -" then perform the remapping -" -if g:miniBufExplMapWindowNavArrows - noremap <C-Down> <C-W>j - noremap <C-Up> <C-W>k - noremap <C-Left> <C-W>h - noremap <C-Right> <C-W>l -endif - -" If we have enabled <C-TAB> and <C-S-TAB> to switch buffers -" in the current window then perform the remapping -" -if g:miniBufExplMapCTabSwitchBufs - noremap <C-TAB> :call <SID>CycleBuffer(1)<CR>:<BS> - noremap <C-S-TAB> :call <SID>CycleBuffer(0)<CR>:<BS> -endif - -" -" If we have enabled <C-TAB> and <C-S-TAB> to switch windows -" then perform the remapping -" -if g:miniBufExplMapCTabSwitchWindows - noremap <C-TAB> <C-W>w - noremap <C-S-TAB> <C-W>W -endif - -" }}} -" Modifiable Select Target {{{ -" -if !exists('g:miniBufExplModSelTarget') - let g:miniBufExplModSelTarget = 0 -endif - -"}}} -" Force Syntax Enable {{{ -" -if !exists('g:miniBufExplForceSyntaxEnable') - let g:miniBufExplForceSyntaxEnable = 0 -endif - -" }}} -" Single/Double Click? {{{ -" flag that can be set to 1 in a users .vimrc to allow -" single click switching of tabs. By default we use -" double click for tab selection. -" -if !exists('g:miniBufExplUseSingleClick') - let g:miniBufExplUseSingleClick = 0 -endif - -" -" attempt to perform single click mapping, it would be much -" nicer if we could nnoremap <buffer> ... however vim does -" not fire the <buffer> <leftmouse> when you use the mouse -" to enter a buffer. -" -if g:miniBufExplUseSingleClick == 1 - let s:clickmap = ':if bufname("%") == "-MiniBufExplorer-" <bar> call <SID>MBEClick() <bar> endif <CR>' - if maparg('<LEFTMOUSE>', 'n') == '' - " no mapping for leftmouse - exec ':nnoremap <silent> <LEFTMOUSE> <LEFTMOUSE>' . s:clickmap - else - " we have a mapping - let g:miniBufExplDoneClickSave = 1 - let s:m = ':nnoremap <silent> <LEFTMOUSE> <LEFTMOUSE>' - let s:m = s:m . substitute(substitute(maparg('<LEFTMOUSE>', 'n'), '|', '<bar>', 'g'), '\c^<LEFTMOUSE>', '', '') - let s:m = s:m . s:clickmap - exec s:m - endif -endif " }}} - -" Variables used internally -" -" Script/Global variables {{{ -" Global used to store the buffer list so we don't update the -" UI unless the list has changed. -if !exists('g:miniBufExplBufList') - let g:miniBufExplBufList = '' -endif - -" Variable used as a mutex so that we don't do lots -" of AutoUpdates at the same time. -if !exists('g:miniBufExplInAutoUpdate') - let g:miniBufExplInAutoUpdate = 0 -endif - -" In debug mode 3 this variable will hold the debug output -if !exists('g:miniBufExplorerDebugOutput') - let g:miniBufExplorerDebugOutput = '' -endif - -" In debug mode 3 this variable will hold the debug output -if !exists('g:miniBufExplForceDisplay') - let g:miniBufExplForceDisplay = 0 -endif - -" Variable used to pass maxTabWidth info between functions -let s:maxTabWidth = 0 - -" Variable used to count debug output lines -let s:debugIndex = 0 - - -" }}} -" Setup an autocommand group and some autocommands {{{ -" that keep our explorer updated automatically. -" -augroup MiniBufExplorer -autocmd MiniBufExplorer BufDelete * call <SID>DEBUG('-=> BufDelete AutoCmd', 10) |call <SID>AutoUpdate(expand('<abuf>')) -autocmd MiniBufExplorer BufEnter * call <SID>DEBUG('-=> BufEnter AutoCmd', 10) |call <SID>AutoUpdate(-1) -autocmd MiniBufExplorer VimEnter * call <SID>DEBUG('-=> VimEnter AutoCmd', 10) |let g:miniBufExplorerAutoUpdate = 1 |call <SID>AutoUpdate(-1) -" }}} - -" Functions -" -" StartExplorer - Sets up our explorer and causes it to be displayed {{{ -" -function! <SID>StartExplorer(sticky, delBufNum) - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Entering StartExplorer()' ,10) - call <SID>DEBUG('===========================',10) - - if a:sticky == 1 - let g:miniBufExplorerAutoUpdate = 1 - endif - - " Store the current buffer - let l:curBuf = bufnr('%') - - " Prevent a report of our actions from showing up. - let l:save_rep = &report - let l:save_sc = &showcmd - let &report = 10000 - set noshowcmd - - call <SID>FindCreateWindow('-MiniBufExplorer-', -1, 1, 1) - - " Make sure we are in our window - if bufname('%') != '-MiniBufExplorer-' - call <SID>DEBUG('StartExplorer called in invalid window',1) - let &report = l:save_rep - let &showcmd = l:save_sc - return - endif - - " !!! We may want to make the following optional -- Bindu - " New windows don't cause all windows to be resized to equal sizes - set noequalalways - " !!! We may want to make the following optional -- Bindu - " We don't want the mouse to change focus without a click - set nomousefocus - - " If folks turn numbering and columns on by default we will turn - " them off for the MBE window - setlocal foldcolumn=0 - setlocal nonumber - - if has("syntax") - syn clear - syn match MBENormal '\[[^\]]*\]' - syn match MBEChanged '\[[^\]]*\]+' - syn match MBEVisibleNormal '\[[^\]]*\]\*+\=' - syn match MBEVisibleChanged '\[[^\]]*\]\*+' - - if !exists("g:did_minibufexplorer_syntax_inits") - let g:did_minibufexplorer_syntax_inits = 1 - hi def link MBENormal Comment - hi def link MBEChanged String - hi def link MBEVisibleNormal Special - hi def link MBEVisibleChanged Special - endif - endif - - " If you press return in the -MiniBufExplorer- then try - " to open the selected buffer in the previous window. - nnoremap <buffer> <CR> :call <SID>MBESelectBuffer()<CR>:<BS> - " If you DoubleClick in the -MiniBufExplorer- then try - " to open the selected buffer in the previous window. - nnoremap <buffer> <2-LEFTMOUSE> :call <SID>MBEDoubleClick()<CR>:<BS> - " If you press d in the -MiniBufExplorer- then try to - " delete the selected buffer. - nnoremap <buffer> d :call <SID>MBEDeleteBuffer()<CR>:<BS> - " If you press w in the -MiniBufExplorer- then switch back - " to the previous window. - nnoremap <buffer> p :wincmd p<CR>:<BS> - " The following allow us to use regular movement keys to - " scroll in a wrapped single line buffer - nnoremap <buffer> j gj - nnoremap <buffer> k gk - nnoremap <buffer> <down> gj - nnoremap <buffer> <up> gk - " The following allows for quicker moving between buffer - " names in the [MBE] window it also saves the last-pattern - " and restores it. - nnoremap <buffer> <TAB> :call search('\[[0-9]*:[^\]]*\]')<CR>:<BS> - nnoremap <buffer> <S-TAB> :call search('\[[0-9]*:[^\]]*\]','b')<CR>:<BS> - - call <SID>DisplayBuffers(a:delBufNum) - - if (l:curBuf != -1) - call search('\['.l:curBuf.':'.expand('#'.l:curBuf.':t').'\]') - else - call <SID>DEBUG('No current buffer to search for',9) - endif - - let &report = l:save_rep - let &showcmd = l:save_sc - - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Completed StartExplorer()' ,10) - call <SID>DEBUG('===========================',10) - -endfunction - -" }}} -" StopExplorer - Looks for our explorer and closes the window if it is open {{{ -" -function! <SID>StopExplorer(sticky) - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Entering StopExplorer()' ,10) - call <SID>DEBUG('===========================',10) - - if a:sticky == 1 - let g:miniBufExplorerAutoUpdate = 0 - endif - - let l:winNum = <SID>FindWindow('-MiniBufExplorer-', 1) - - if l:winNum != -1 - exec l:winNum.' wincmd w' - silent! close - wincmd p - endif - - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Completed StopExplorer()' ,10) - call <SID>DEBUG('===========================',10) - -endfunction - -" }}} -" ToggleExplorer - Looks for our explorer and opens/closes the window {{{ -" -function! <SID>ToggleExplorer() - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Entering ToggleExplorer()' ,10) - call <SID>DEBUG('===========================',10) - - let g:miniBufExplorerAutoUpdate = 0 - - let l:winNum = <SID>FindWindow('-MiniBufExplorer-', 1) - - if l:winNum != -1 - call <SID>StopExplorer(1) - else - call <SID>StartExplorer(1, -1) - wincmd p - endif - - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Completed ToggleExplorer()' ,10) - call <SID>DEBUG('===========================',10) - -endfunction - -" }}} -" FindWindow - Return the window number of a named buffer {{{ -" If none is found then returns -1. -" -function! <SID>FindWindow(bufName, doDebug) - if a:doDebug - call <SID>DEBUG('Entering FindWindow()',10) - endif - - " Try to find an existing window that contains - " our buffer. - let l:bufNum = bufnr(a:bufName) - if l:bufNum != -1 - if a:doDebug - call <SID>DEBUG('Found buffer ('.a:bufName.'): '.l:bufNum,9) - endif - let l:winNum = bufwinnr(l:bufNum) - else - let l:winNum = -1 - endif - - return l:winNum - -endfunction - -" }}} -" FindCreateWindow - Attempts to find a window for a named buffer. {{{ -" -" If it is found then moves there. Otherwise creates a new window and -" configures it and moves there. -" -" forceEdge, -1 use defaults, 0 below, 1 above -" isExplorer, 0 no, 1 yes -" doDebug, 0 no, 1 yes -" -function! <SID>FindCreateWindow(bufName, forceEdge, isExplorer, doDebug) - if a:doDebug - call <SID>DEBUG('Entering FindCreateWindow('.a:bufName.')',10) - endif - - " Save the user's split setting. - let l:saveSplitBelow = &splitbelow - - " Set to our new values. - let &splitbelow = g:miniBufExplSplitBelow - - " Try to find an existing explorer window - let l:winNum = <SID>FindWindow(a:bufName, a:doDebug) - - " If found goto the existing window, otherwise - " split open a new window. - if l:winNum != -1 - if a:doDebug - call <SID>DEBUG('Found window ('.a:bufName.'): '.l:winNum,9) - endif - exec l:winNum.' wincmd w' - let l:winFound = 1 - else - - if g:miniBufExplSplitToEdge == 1 || a:forceEdge >= 0 - - let l:edge = &splitbelow - if a:forceEdge >= 0 - let l:edge = a:forceEdge - endif - - if l:edge - if g:miniBufExplVSplit == 0 - exec 'bo sp '.a:bufName - else - exec 'bo vsp '.a:bufName - endif - else - if g:miniBufExplVSplit == 0 - exec 'to sp '.a:bufName - else - exec 'to vsp '.a:bufName - endif - endif - else - if g:miniBufExplVSplit == 0 - exec 'sp '.a:bufName - else - " &splitbelow doesn't affect vertical splits - " so we have to do this explicitly.. ugh. - if &splitbelow - exec 'rightb vsp '.a:bufName - else - exec 'vsp '.a:bufName - endif - endif - endif - - let g:miniBufExplForceDisplay = 1 - - " Try to find an existing explorer window - let l:winNum = <SID>FindWindow(a:bufName, a:doDebug) - if l:winNum != -1 - if a:doDebug - call <SID>DEBUG('Created and then found window ('.a:bufName.'): '.l:winNum,9) - endif - exec l:winNum.' wincmd w' - else - if a:doDebug - call <SID>DEBUG('FindCreateWindow failed to create window ('.a:bufName.').',1) - endif - return - endif - - if a:isExplorer - " Turn off the swapfile, set the buffer type so that it won't get written, - " and so that it will get deleted when it gets hidden and turn on word wrap. - setlocal noswapfile - setlocal buftype=nofile - setlocal bufhidden=delete - if g:miniBufExplVSplit == 0 - setlocal wrap - else - setlocal nowrap - exec('setlocal winwidth='.g:miniBufExplMinSize) - endif - endif - - if a:doDebug - call <SID>DEBUG('Window ('.a:bufName.') created: '.winnr(),9) - endif - - endif - - " Restore the user's split setting. - let &splitbelow = l:saveSplitBelow - -endfunction - -" }}} -" DisplayBuffers - Wrapper for getting MBE window shown {{{ -" -" Makes sure we are in our explorer, then erases the current buffer and turns -" it into a mini buffer explorer window. -" -function! <SID>DisplayBuffers(delBufNum) - call <SID>DEBUG('Entering DisplayBuffers()',10) - - " Make sure we are in our window - if bufname('%') != '-MiniBufExplorer-' - call <SID>DEBUG('DisplayBuffers called in invalid window',1) - return - endif - - " We need to be able to modify the buffer - setlocal modifiable - - call <SID>ShowBuffers(a:delBufNum) - call <SID>ResizeWindow() - - normal! zz - - " Prevent the buffer from being modified. - setlocal nomodifiable - set nobuflisted - -endfunction - -" }}} -" Resize Window - Set width/height of MBE window {{{ -" -" Makes sure we are in our explorer, then sets the height/width for our explorer -" window so that we can fit all of our information without taking extra lines. -" -function! <SID>ResizeWindow() - call <SID>DEBUG('Entering ResizeWindow()',10) - - " Make sure we are in our window - if bufname('%') != '-MiniBufExplorer-' - call <SID>DEBUG('ResizeWindow called in invalid window',1) - return - endif - - let l:width = winwidth('.') - - " Horizontal Resize - if g:miniBufExplVSplit == 0 - - if g:miniBufExplTabWrap == 0 - let l:length = strlen(getline('.')) - let l:height = 0 - if (l:width == 0) - let l:height = winheight('.') - else - let l:height = (l:length / l:width) - " handle truncation from div - if (l:length % l:width) != 0 - let l:height = l:height + 1 - endif - endif - else - exec("setlocal textwidth=".l:width) - normal gg - normal gq} - normal G - let l:height = line('.') - normal gg - endif - - " enforce max window height - if g:miniBufExplMaxSize != 0 - if g:miniBufExplMaxSize < l:height - let l:height = g:miniBufExplMaxSize - endif - endif - - " enfore min window height - if l:height < g:miniBufExplMinSize || l:height == 0 - let l:height = g:miniBufExplMinSize - endif - - call <SID>DEBUG('ResizeWindow to '.l:height.' lines',9) - - exec('resize '.l:height) - - " Vertical Resize - else - - if g:miniBufExplMaxSize != 0 - let l:newWidth = s:maxTabWidth - if l:newWidth > g:miniBufExplMaxSize - let l:newWidth = g:miniBufExplMaxSize - endif - if l:newWidth < g:miniBufExplMinSize - let l:newWidth = g:miniBufExplMinSize - endif - else - let l:newWidth = g:miniBufExplVSplit - endif - - if l:width != l:newWidth - call <SID>DEBUG('ResizeWindow to '.l:newWidth.' columns',9) - exec('vertical resize '.l:newWidth) - endif - - endif - -endfunction - -" }}} -" ShowBuffers - Clear current buffer and put the MBE text into it {{{ -" -" Makes sure we are in our explorer, then adds a list of all modifiable -" buffers to the current buffer. Special marks are added for buffers that -" are in one or more windows (*) and buffers that have been modified (+) -" -function! <SID>ShowBuffers(delBufNum) - call <SID>DEBUG('Entering ShowBuffers()',10) - - let l:ListChanged = <SID>BuildBufferList(a:delBufNum, 1) - - if (l:ListChanged == 1 || g:miniBufExplForceDisplay) - let l:save_rep = &report - let l:save_sc = &showcmd - let &report = 10000 - set noshowcmd - - " Delete all lines in buffer. - 1,$d _ - - " Goto the end of the buffer put the buffer list - " and then delete the extra trailing blank line - $ - put! =g:miniBufExplBufList - $ d _ - - let g:miniBufExplForceDisplay = 0 - - let &report = l:save_rep - let &showcmd = l:save_sc - else - call <SID>DEBUG('Buffer list not update since there was no change',9) - endif - -endfunction - -" }}} -" Max - Returns the max of two numbers {{{ -" -function! <SID>Max(argOne, argTwo) - if a:argOne > a:argTwo - return a:argOne - else - return a:argTwo - endif -endfunction - -" }}} -" BuildBufferList - Build the text for the MBE window {{{ -" -" Creates the buffer list string and returns 1 if it is different than -" last time this was called and 0 otherwise. -" -function! <SID>BuildBufferList(delBufNum, updateBufList) - call <SID>DEBUG('Entering BuildBufferList()',10) - - let l:NBuffers = bufnr('$') " Get the number of the last buffer. - let l:i = 0 " Set the buffer index to zero. - - let l:fileNames = '' - let l:maxTabWidth = 0 - - " Loop through every buffer less than the total number of buffers. - while(l:i <= l:NBuffers) - let l:i = l:i + 1 - - " If we have a delBufNum and it is the current - " buffer then ignore the current buffer. - " Otherwise, continue. - if (a:delBufNum == -1 || l:i != a:delBufNum) - " Make sure the buffer in question is listed. - if(getbufvar(l:i, '&buflisted') == 1) - " Get the name of the buffer. - let l:BufName = bufname(l:i) - " Check to see if the buffer is a blank or not. If the buffer does have - " a name, process it. - if(strlen(l:BufName)) - " Only show modifiable buffers (The idea is that we don't - " want to show Explorers) - if (getbufvar(l:i, '&modifiable') == 1 && BufName != '-MiniBufExplorer-') - - " Get filename & Remove []'s & ()'s - let l:shortBufName = fnamemodify(l:BufName, ":t") - let l:shortBufName = substitute(l:shortBufName, '[][()]', '', 'g') - let l:tab = '['.l:i.':'.l:shortBufName.']' - - " If the buffer is open in a window mark it - if bufwinnr(l:i) != -1 - let l:tab = l:tab . '*' - endif - - " If the buffer is modified then mark it - if(getbufvar(l:i, '&modified') == 1) - let l:tab = l:tab . '+' - endif - - let l:maxTabWidth = <SID>Max(strlen(l:tab), l:maxTabWidth) - let l:fileNames = l:fileNames.l:tab - - " If horizontal and tab wrap is turned on we need to add spaces - if g:miniBufExplVSplit == 0 - if g:miniBufExplTabWrap != 0 - let l:fileNames = l:fileNames.' ' - endif - " If not horizontal we need a newline - else - let l:fileNames = l:fileNames . "\n" - endif - endif - endif - endif - endif - endwhile - - if (g:miniBufExplBufList != l:fileNames) - if (a:updateBufList) - let g:miniBufExplBufList = l:fileNames - let s:maxTabWidth = l:maxTabWidth - endif - return 1 - else - return 0 - endif - -endfunction - -" }}} -" HasEligibleBuffers - Are there enough MBE eligible buffers to open the MBE window? {{{ -" -" Returns 1 if there are any buffers that can be displayed in a -" mini buffer explorer. Otherwise returns 0. If delBufNum is -" any non -1 value then don't include that buffer in the list -" of eligible buffers. -" -function! <SID>HasEligibleBuffers(delBufNum) - call <SID>DEBUG('Entering HasEligibleBuffers()',10) - - let l:save_rep = &report - let l:save_sc = &showcmd - let &report = 10000 - set noshowcmd - - let l:NBuffers = bufnr('$') " Get the number of the last buffer. - let l:i = 0 " Set the buffer index to zero. - let l:found = 0 " No buffer found - - if (g:miniBufExplorerMoreThanOne > 1) - call <SID>DEBUG('More Than One mode turned on',6) - endif - let l:needed = g:miniBufExplorerMoreThanOne - - " Loop through every buffer less than the total number of buffers. - while(l:i <= l:NBuffers && l:found < l:needed) - let l:i = l:i + 1 - - " If we have a delBufNum and it is the current - " buffer then ignore the current buffer. - " Otherwise, continue. - if (a:delBufNum == -1 || l:i != a:delBufNum) - " Make sure the buffer in question is listed. - if (getbufvar(l:i, '&buflisted') == 1) - " Get the name of the buffer. - let l:BufName = bufname(l:i) - " Check to see if the buffer is a blank or not. If the buffer does have - " a name, process it. - if (strlen(l:BufName)) - " Only show modifiable buffers (The idea is that we don't - " want to show Explorers) - if ((getbufvar(l:i, '&modifiable') == 1) && (BufName != '-MiniBufExplorer-')) - - let l:found = l:found + 1 - - endif - endif - endif - endif - endwhile - - let &report = l:save_rep - let &showcmd = l:save_sc - - call <SID>DEBUG('HasEligibleBuffers found '.l:found.' eligible buffers of '.l:needed.' needed',6) - - return (l:found >= l:needed) - -endfunction - -" }}} -" Auto Update - Function called by auto commands for auto updating the MBE {{{ -" -" IF auto update is turned on AND -" we are in a real buffer AND -" we have enough eligible buffers THEN -" Update our explorer and get back to the current window -" -" If we get a buffer number for a buffer that -" is being deleted, we need to make sure and -" remove the buffer from the list of eligible -" buffers in case we are down to one eligible -" buffer, in which case we will want to close -" the MBE window. -" -function! <SID>AutoUpdate(delBufNum) - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Entering AutoUpdate('.a:delBufNum.') : '.bufnr('%').' : '.bufname('%'),10) - call <SID>DEBUG('===========================',10) - - if (g:miniBufExplInAutoUpdate == 1) - call <SID>DEBUG('AutoUpdate recursion stopped',9) - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Terminated AutoUpdate()' ,10) - call <SID>DEBUG('===========================',10) - return - else - let g:miniBufExplInAutoUpdate = 1 - endif - - " Don't bother autoupdating the MBE window - if (bufname('%') == '-MiniBufExplorer-') - " If this is the only buffer left then toggle the buffer - if (winbufnr(2) == -1) - call <SID>CycleBuffer(1) - call <SID>DEBUG('AutoUpdate does not run for cycled windows', 9) - else - call <SID>DEBUG('AutoUpdate does not run for the MBE window', 9) - endif - - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Terminated AutoUpdate()' ,10) - call <SID>DEBUG('===========================',10) - - let g:miniBufExplInAutoUpdate = 0 - return - - endif - - if (a:delBufNum != -1) - call <SID>DEBUG('AutoUpdate will make sure that buffer '.a:delBufNum.' is not included in the buffer list.', 5) - endif - - " Only allow updates when the AutoUpdate flag is set - " this allows us to stop updates on startup. - if g:miniBufExplorerAutoUpdate == 1 - " Only show MiniBufExplorer if we have a real buffer - if ((g:miniBufExplorerMoreThanOne == 0) || (bufnr('%') != -1 && bufname('%') != "")) - if <SID>HasEligibleBuffers(a:delBufNum) == 1 - " if we don't have a window then create one - let l:bufnr = <SID>FindWindow('-MiniBufExplorer-', 0) - if (l:bufnr == -1) - call <SID>DEBUG('About to call StartExplorer (Create MBE)', 9) - call <SID>StartExplorer(0, a:delBufNum) - else - " otherwise only update the window if the contents have - " changed - let l:ListChanged = <SID>BuildBufferList(a:delBufNum, 0) - if (l:ListChanged) - call <SID>DEBUG('About to call StartExplorer (Update MBE)', 9) - call <SID>StartExplorer(0, a:delBufNum) - endif - endif - - " go back to the working buffer - if (bufname('%') == '-MiniBufExplorer-') - wincmd p - endif - else - call <SID>DEBUG('Failed in eligible check', 9) - call <SID>StopExplorer(0) - endif - - " VIM sometimes turns syntax highlighting off, - " we can force it on, but this may cause weird - " behavior so this is an optional hack to force - " syntax back on when we enter a buffer - if g:miniBufExplForceSyntaxEnable - call <SID>DEBUG('Enable Syntax', 9) - exec 'syntax enable' - endif - - else - call <SID>DEBUG('No buffers loaded...',9) - endif - else - call <SID>DEBUG('AutoUpdates are turned off, terminating',9) - endif - - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Completed AutoUpdate()' ,10) - call <SID>DEBUG('===========================',10) - - let g:miniBufExplInAutoUpdate = 0 - -endfunction - -" }}} -" GetSelectedBuffer - From the MBE window, return the bufnum for buf under cursor {{{ -" -" If we are in our explorer window then return the buffer number -" for the buffer under the cursor. -" -function! <SID>GetSelectedBuffer() - call <SID>DEBUG('Entering GetSelectedBuffer()',10) - - " Make sure we are in our window - if bufname('%') != '-MiniBufExplorer-' - call <SID>DEBUG('GetSelectedBuffer called in invalid window',1) - return -1 - endif - - let l:save_reg = @" - let @" = "" - normal ""yi[ - if @" != "" - let l:retv = substitute(@",'\([0-9]*\):.*', '\1', '') + 0 - let @" = l:save_reg - return l:retv - else - let @" = l:save_reg - return -1 - endif - -endfunction - -" }}} -" MBESelectBuffer - From the MBE window, open buffer under the cursor {{{ -" -" If we are in our explorer, then we attempt to open the buffer under the -" cursor in the previous window. -" -function! <SID>MBESelectBuffer() - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Entering MBESelectBuffer()' ,10) - call <SID>DEBUG('===========================',10) - - " Make sure we are in our window - if bufname('%') != '-MiniBufExplorer-' - call <SID>DEBUG('MBESelectBuffer called in invalid window',1) - return - endif - - let l:save_rep = &report - let l:save_sc = &showcmd - let &report = 10000 - set noshowcmd - - let l:bufnr = <SID>GetSelectedBuffer() - let l:resize = 0 - - if(l:bufnr != -1) " If the buffer exists. - - let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate - let g:miniBufExplorerAutoUpdate = 0 - " Switch to the previous window - wincmd p - - " If we are in the buffer explorer or in a nonmodifiable buffer with - " g:miniBufExplModSelTarget set then try another window (a few times) - if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0) - wincmd w - if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0) - wincmd w - if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0) - wincmd w - " The following handles the case where -MiniBufExplorer- - " is the only window left. We need to resize so we don't - " end up with a 1 or two line buffer. - if bufname('%') == '-MiniBufExplorer-' - let l:resize = 1 - endif - endif - endif - endif - - exec('b! '.l:bufnr) - if (l:resize) - resize - endif - let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate - call <SID>AutoUpdate(-1) - - endif - - let &report = l:save_rep - let &showcmd = l:save_sc - - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Completed MBESelectBuffer()',10) - call <SID>DEBUG('===========================',10) - -endfunction - -" }}} -" MBEDeleteBuffer - From the MBE window, delete selected buffer from list {{{ -" -" After making sure that we are in our explorer, This will delete the buffer -" under the cursor. If the buffer under the cursor is being displayed in a -" window, this routine will attempt to get different buffers into the -" windows that will be affected so that windows don't get removed. -" -function! <SID>MBEDeleteBuffer() - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Entering MBEDeleteBuffer()' ,10) - call <SID>DEBUG('===========================',10) - - " Make sure we are in our window - if bufname('%') != '-MiniBufExplorer-' - call <SID>DEBUG('MBEDeleteBuffer called in invalid window',1) - return - endif - - let l:curLine = line('.') - let l:curCol = virtcol('.') - let l:selBuf = <SID>GetSelectedBuffer() - let l:selBufName = bufname(l:selBuf) - - if l:selBufName == 'MiniBufExplorer.DBG' && g:miniBufExplorerDebugLevel > 0 - call <SID>DEBUG('MBEDeleteBuffer will not delete the debug window, when debugging is turned on.',1) - return - endif - - let l:save_rep = &report - let l:save_sc = &showcmd - let &report = 10000 - set noshowcmd - - - if l:selBuf != -1 - - " Don't want auto updates while we are processing a delete - " request. - let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate - let g:miniBufExplorerAutoUpdate = 0 - - " Save previous window so that if we show a buffer after - " deleting. The show will come up in the correct window. - wincmd p - let l:prevWin = winnr() - let l:prevWinBuf = winbufnr(winnr()) - - call <SID>DEBUG('Previous window: '.l:prevWin.' buffer in window: '.l:prevWinBuf,5) - call <SID>DEBUG('Selected buffer is <'.l:selBufName.'>['.l:selBuf.']',5) - - " If buffer is being displayed in a window then - " move window to a different buffer before - " deleting this one. - let l:winNum = (bufwinnr(l:selBufName) + 0) - " while we have windows that contain our buffer - while l:winNum != -1 - call <SID>DEBUG('Buffer '.l:selBuf.' is being displayed in window: '.l:winNum,5) - - " move to window that contains our selected buffer - exec l:winNum.' wincmd w' - - call <SID>DEBUG('We are now in window: '.winnr().' which contains buffer: '.bufnr('%').' and should contain buffer: '.l:selBuf,5) - - let l:origBuf = bufnr('%') - call <SID>CycleBuffer(1) - let l:curBuf = bufnr('%') - - call <SID>DEBUG('Window now contains buffer: '.bufnr('%').' which should not be: '.l:selBuf,5) - - if l:origBuf == l:curBuf - " we wrapped so we are going to have to delete a buffer - " that is in an open window. - let l:winNum = -1 - else - " see if we have anymore windows with our selected buffer - let l:winNum = (bufwinnr(l:selBufName) + 0) - endif - endwhile - - " Attempt to restore previous window - call <SID>DEBUG('Restoring previous window to: '.l:prevWin,5) - exec l:prevWin.' wincmd w' - - " Try to get back to the -MiniBufExplorer- window - let l:winNum = bufwinnr(bufnr('-MiniBufExplorer-')) - if l:winNum != -1 - exec l:winNum.' wincmd w' - call <SID>DEBUG('Got to -MiniBufExplorer- window: '.winnr(),5) - else - call <SID>DEBUG('Unable to get to -MiniBufExplorer- window',1) - endif - - " Delete the buffer selected. - call <SID>DEBUG('About to delete buffer: '.l:selBuf,5) - exec('silent! bd '.l:selBuf) - - let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate - call <SID>DisplayBuffers(-1) - call cursor(l:curLine, l:curCol) - - endif - - let &report = l:save_rep - let &showcmd = l:save_sc - - call <SID>DEBUG('===========================',10) - call <SID>DEBUG('Completed MBEDeleteBuffer()',10) - call <SID>DEBUG('===========================',10) - -endfunction - -" }}} -" MBEClick - Handle mouse double click {{{ -" -function! s:MBEClick() - call <SID>DEBUG('Entering MBEClick()',10) - call <SID>MBESelectBuffer() -endfunction - -" -" MBEDoubleClick - Double click with the mouse. -" -function! s:MBEDoubleClick() - call <SID>DEBUG('Entering MBEDoubleClick()',10) - call <SID>MBESelectBuffer() -endfunction - -" }}} -" CycleBuffer - Cycle Through Buffers {{{ -" -" Move to next or previous buffer in the current window. If there -" are no more modifiable buffers then stay on the current buffer. -" can be called with no parameters in which case the buffers are -" cycled forward. Otherwise a single argument is accepted, if -" it's 0 then the buffers are cycled backwards, otherwise they -" are cycled forward. -" -function! <SID>CycleBuffer(forward) - - " The following hack handles the case where we only have one - " window open and it is too small - let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate - if (winbufnr(2) == -1) - resize - let g:miniBufExplorerAutoUpdate = 0 - endif - - " Change buffer (keeping track of before and after buffers) - let l:origBuf = bufnr('%') - if (a:forward == 1) - bn! - else - bp! - endif - let l:curBuf = bufnr('%') - - " Skip any non-modifiable buffers, but don't cycle forever - " This should stop us from stopping in any of the [Explorers] - while getbufvar(l:curBuf, '&modifiable') == 0 && l:origBuf != l:curBuf - if (a:forward == 1) - bn! - else - bp! - endif - let l:curBuf = bufnr('%') - endwhile - - let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate - if (l:saveAutoUpdate == 1) - call <SID>AutoUpdate(-1) - endif - -endfunction - -" }}} -" DEBUG - Display debug output when debugging is turned on {{{ -" -" Thanks to Charles E. Campbell, Jr. PhD <cec@NgrOyphSon.gPsfAc.nMasa.gov> -" for Decho.vim which was the inspiration for this enhanced debugging -" capability. -" -function! <SID>DEBUG(msg, level) - - if g:miniBufExplorerDebugLevel >= a:level - - " Prevent a report of our actions from showing up. - let l:save_rep = &report - let l:save_sc = &showcmd - let &report = 10000 - set noshowcmd - - " Debug output to a buffer - if g:miniBufExplorerDebugMode == 0 - " Save the current window number so we can come back here - let l:prevWin = winnr() - wincmd p - let l:prevPrevWin = winnr() - wincmd p - - " Get into the debug window or create it if needed - call <SID>FindCreateWindow('MiniBufExplorer.DBG', 1, 0, 0) - - " Make sure we really got to our window, if not we - " will display a confirm dialog and turn debugging - " off so that we won't break things even more. - if bufname('%') != 'MiniBufExplorer.DBG' - call confirm('Error in window debugging code. Dissabling MiniBufExplorer debugging.', 'OK') - let g:miniBufExplorerDebugLevel = 0 - endif - - " Write Message to DBG buffer - let res=append("$",s:debugIndex.':'.a:level.':'.a:msg) - norm G - "set nomodified - - " Return to original window - exec l:prevPrevWin.' wincmd w' - exec l:prevWin.' wincmd w' - " Debug output using VIM's echo facility - elseif g:miniBufExplorerDebugMode == 1 - echo s:debugIndex.':'.a:level.':'.a:msg - " Debug output to a file -- VERY SLOW!!! - " should be OK on UNIX and Win32 (not the 95/98 variants) - elseif g:miniBufExplorerDebugMode == 2 - if has('system') || has('fork') - if has('win32') && !has('win95') - let l:result = system("cmd /c 'echo ".s:debugIndex.':'.a:level.':'.a:msg." >> MiniBufExplorer.DBG'") - endif - if has('unix') - let l:result = system("echo '".s:debugIndex.':'.a:level.':'.a:msg." >> MiniBufExplorer.DBG'") - endif - else - call confirm('Error in file writing version of the debugging code, vim not compiled with system or fork. Dissabling MiniBufExplorer debugging.', 'OK') - let g:miniBufExplorerDebugLevel = 0 - endif - elseif g:miniBufExplorerDebugMode == 3 - let g:miniBufExplorerDebugOutput = g:miniBufExplorerDebugOutput."\n".s:debugIndex.':'.a:level.':'.a:msg - endif - let s:debugIndex = s:debugIndex + 1 - - let &report = l:save_rep - let &showcmd = l:save_sc - - endif - -endfunc " }}} - -" MBE Script History {{{ -"============================================================================= -" -" History: 6.3.2 o For some reason there was still a call to StopExplorer -" with 2 params. Very old bug. I know I fixed before, -" any way many thanks to Jason Mills for reporting this! -" 6.3.1 o Include folds in source so that it's easier to -" navigate. -" o Added g:miniBufExplForceSyntaxEnable setting for folks -" that want a :syntax enable to be called when we enter -" buffers. This can resolve issues caused by a vim bug -" where buffers show up without highlighting when another -" buffer has been closed, quit, wiped or deleted. -" 6.3.0 o Added an option to allow single click (rather than -" the default double click) to select buffers in the -" MBE window. This feature was requested by AW Law -" and was inspired by taglist.vim. Note that you will -" need the latest version of taglist.vim if you want to -" use MBE and taglist both with singleclick turned on. -" Also thanks to AW Law for pointing out that you can -" make an Explorer not be listed in a standard :ls. -" o Added the ability to have your tabs show up in a -" vertical window rather than the standard horizontal -" one. Just let g:miniBufExplVSplit = <width> in your -" .vimrc and your will get this functionality. -" o If you use the vertical explorer and you want it to -" autosize then let g:miniBufExplMaxSize = <max width> -" in your .vimrc. You may use the MinSize letting in -" addition to the MaxLetting if you don't want a super -" thin window. -" o g:miniBufExplMaxHeight was renamed g:miniBufExplMaxSize -" g:miniBufExplMinHeight was renamed g:miniBufExplMinSize -" the old settings are backwards compatible if you don't -" use the new settings, but they are depreciated. -" 6.2.8 o Add an option to stop MBE from targeting non-modifiable -" buffers when switching buffers. Thanks to AW Law for -" the inspiration for this. This may not work if a user -" has lots of explorer/help windows open. -" 6.2.7 o Very minor bug fix for people who want to set -" loaded_minibufexplorer in their .vimrc in order to -" stop MBE from loading. 99.99% of users do not need -" this update. -" 6.2.6 o Moved history to end of source file -" o Updated highlighting documentation -" o Created global commands MBEbn and MBEbp that can be -" used in mappings if folks want to cycle buffers while -" skipping non-eligible buffers. -" 6.2.5 o Added <Leader>mbt key mapping which will toggle -" the MBE window. I map this to F3 in my .vimrc -" with "map <F3> :TMiniBufExplorer<CR>" which -" means I can easily close the MBE window when I'm -" not using it and get it back when I want it. -" o Changed default debug mode to 3 (write to global -" g:miniBufExplorerDebugOutput) -" o Made a pass through the documentation to clarify -" serveral issues and provide more complete docs -" for mappings and commands. -" 6.2.4 o Because of the autocommand switch (see 6.2.0) it -" was possible to remove the restriction on the -" :set hidden option. It is now possible to use -" this option with MBE. -" 6.2.3 o Added miniBufExplTabWrap option. It is turned -" off by default. When turned on spaces are added -" between tabs and gq} is issued to perform line -" formatting. This won't work very well if filenames -" contain spaces. It would be pretty easy to write -" my own formatter, but I'm too lazy, so if someone -" really needs that feature I'll add it :) -" 6.2.2 o Changed the way the g:miniBufExplorerMoreThanOne -" global is handled. You can set this to the number -" of eligible buffers you want to be loaded before -" the MBE window is loaded. Setting it to 0 causes -" the MBE window to be opened even if there are no -" buffers. Setting it to 4 causes the window to stay -" closed until the 4th eligible buffer is loaded. -" o Added a MinHeight option. This is nice if you want -" the MBE window to always take the same amount of -" space. For example set MaxSize and MinSize to 2 -" and set MoreThanOne to 0 and you will always have -" a 2 row (plus the ruler :) MBE window. -" NOTE: in 6.3.0 we started using MinSize instead of -" Minheight. This will still work if MinSize is not -" specified, but it is depreciated. Use MinSize instead. -" o I now setlocal foldcomun=0 and nonumber in the MBE -" window. This is for those of you that like to have -" these options turned on locally. I'm assuming noone -" outthere wants foldcolumns and line numbers in the -" MBE window? :) -" o Fixed a bug where an empty MBE window was taking half -" of the screen (partly why the MinHeight option was -" added.) -" 6.2.1 o If MBE is the only window (because of :bd for example) -" and there are still eligible buffers then one of them -" will be displayed. -" o The <Leader>mbe mapping now highlights the buffer from -" the current window. -" o The delete ('d') binding in the MBE window now restors -" the cursor position, which can help if you want to -" delete several buffers in a row that are not at the -" beginning of the buffer list. -" o Added a new key binding ('p') in the MBE window to -" switch to the previous window (last edit window) -" 6.2.0 o Major overhaul of autocommand and list updating code, -" we now have much better handling of :bd (which is the -" most requested feature.) As well as resolving other -" issues where the buffer list would not be updated -" automatically. The old version tried to trap specific -" events, this one just updates frequently, but it keeps -" track and only changes the screen if there has been -" a change. -" o Added g:miniBufExplMaxHeight variable so you can keep -" the -MiniBufExplorer- window small when you have lots -" of buffers (or buffers with long names :) -" NOTE: in 6.3.0 we started using MaxSize instead of -" MaxHeight. This will still work if MaxSize is not -" specified, but it is depreciated. Use MaxSize instead. -" o Improvement to internal syntax highlighting code -" I renamed the syntax group names. Anyone who has -" figured out how to use them already shouldn't have -" any trouble with the new Nameing :) -" o Added debug mode 3 which writes to a global variable -" this is fast and doesn't mess with the buffer/window -" lists. -" 6.1.0 o <Leader>mbc was failing because I was calling one of -" my own functions with the wrong number of args. :( -" Thanks to Gerry Patterson for finding this! -" This code is very stable (although it has some -" idiocyncracies.) -" 6.0.9 o Double clicking tabs was overwriting the cliboard -" register on MS Windows. Thanks to Shoeb Bhinderwala -" for reporting this issue. -" 6.0.8 o Apparently some VIM builds are having a hard time with -" line continuation in scripts so the few that were here -" have been removed. -" o Generalized FindExplorer and FindCreateExplorer so -" that they can be used for the debug window. Renaming -" to FindWindow and FindCreateWindow. -" o Updated debugging code so that debug output is put into -" a buffer which can then be written to disk or emailed -" to me when someone is having a major issue. Can also -" write directly to a file (VERY SLOWLY) on UNIX or Win32 -" (not 95 or 98 at the moment) or use VIM's echo function -" to display the output to the screen. -" o Several people have had issues when the hidden option -" is turned on. So I have put in several checks to make -" sure folks know this if they try to use MBE with this -" option set. -" 6.0.7 o Handling BufDelete autocmd so that the UI updates -" properly when using :bd (rather than going through -" the MBE UI.) -" o The AutoUpdate code will now close the MBE window when -" there is a single eligible buffer available. -" This has the usefull side effect of stopping the MBE -" window from blocking the VIM session open when you close -" the last buffer. -" o Added functions, commands and maps to close & update -" the MBE window (<leader>mbc and <leader>mbu.) -" o Made MBE open/close state be sticky if set through -" StartExplorer(1) or StopExplorer(1), which are -" called from the standard mappings. So if you close -" the mbe window with \mbc it won't be automatically -" opened again unless you do a \mbe (or restart VIM). -" o Removed spaces between "tabs" (even more mini :) -" o Simplified MBE tab processing -" 6.0.6 o Fixed register overwrite bug found by Sébastien Pierre -" 6.0.5 o Fixed an issue with window sizing when we run out of -" buffers. -" o Fixed some weird commenting bugs. -" o Added more optional fancy window/buffer navigation: -" o You can turn on the capability to use control and the -" arrow keys to move between windows. -" o You can turn on the ability to use <C-TAB> and -" <C-S-TAB> to open the next and previous (respectively) -" buffer in the current window. -" o You can turn on the ability to use <C-TAB> and -" <C-S-TAB> to switch windows (forward and backwards -" respectively.) -" 6.0.4 o Added optional fancy window navigation: -" o Holding down control and pressing a vim direction -" [hjkl] will switch windows in the indicated direction. -" 6.0.3 o Changed buffer name to -MiniBufExplorer- to resolve -" Issue in filename pattern matching on Windows. -" 6.0.2 o 2 Changes requested by Suresh Govindachar: -" o Added SplitToEdge option and set it on by default -" o Added tab and shift-tab mappings in [MBE] window -" 6.0.1 o Added MoreThanOne option and set it on by default -" MiniBufExplorer will not automatically open until -" more than one eligible buffers are opened. This -" reduces cluter when you are only working on a -" single file. -" NOTE: See change log for 6.2.2 for more details about -" this feature -" 6.0.0 o Initial Release on November 20, 2001 -" -"============================================================================= -" }}} -" vim:ft=vim:fdm=marker:ff=unix:nowrap:tabstop=4:shiftwidth=4:softtabstop=4:smarttab:shiftround:expandtab
--- a/vim/vimrc Wed Sep 13 10:58:17 2017 -0700 +++ b/vim/vimrc Wed Jan 10 00:05:36 2018 -0800 @@ -273,7 +273,7 @@ \] " Use PyMatch to go faster. -if has('python') || has('python3') +if has('python3') || has('python') let g:ctrlp_match_func = {'match': 'pymatcher#PyMatch'} let g:ctrlp_max_files = 0 let g:ctrlp_lazy_update = 350
--- a/weechat/alias.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/alias.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# alias.conf -- weechat v1.1.1 +# weechat -- alias.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [cmd]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/weechat/buflist.conf Wed Jan 10 00:05:36 2018 -0800 @@ -0,0 +1,38 @@ +# +# weechat -- buflist.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# + +[look] +auto_scroll = 50 +display_conditions = "${buffer.hidden}==0" +enabled = on +mouse_jump_visited_buffer = off +mouse_move_buffer = on +mouse_wheel = on +nick_prefix = off +nick_prefix_empty = on +signals_refresh = "" +sort = "number,-active" + +[format] +buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}" +buffer_current = "${color:,blue}${format_buffer}" +hotlist = " ${color:green}(${hotlist}${color:green})" +hotlist_highlight = "${color:magenta}" +hotlist_low = "${color:white}" +hotlist_message = "${color:brown}" +hotlist_none = "${color:default}" +hotlist_private = "${color:green}" +hotlist_separator = "${color:default}," +indent = " " +lag = " ${color:green}[${color:brown}${lag}${color:green}]" +name = "${name}" +nick_prefix = "${color_nick_prefix}${nick_prefix}" +number = "${color:green}${number}${if:${number_displayed}?.: }"
--- a/weechat/charset.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/charset.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# charset.conf -- weechat v1.1.1 +# weechat -- charset.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [default]
--- a/weechat/exec.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/exec.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# exec.conf -- weechat v1.1.1 +# weechat -- exec.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [command]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/weechat/fifo.conf Wed Jan 10 00:05:36 2018 -0800 @@ -0,0 +1,14 @@ +# +# weechat -- fifo.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# + +[file] +enabled = on +path = "%h/weechat_fifo"
--- a/weechat/irc.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/irc.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# irc.conf -- weechat v1.1.1 +# weechat -- irc.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [look] @@ -27,7 +34,6 @@ highlight_pv = "$nick" highlight_server = "$nick" highlight_tags_restrict = "irc_privmsg,irc_notice" -item_away_message = on item_channel_modes_hide_args = "k" item_display_server = buffer_plugin item_nick_modes = on @@ -36,9 +42,6 @@ msgbuffer_fallback = current new_channel_position = none new_pv_position = none -nick_color_force = "" -nick_color_hash = sum -nick_color_stop_chars = "_|[" nick_completion_smart = speakers nick_mode = prefix nick_mode_empty = off @@ -65,7 +68,6 @@ [color] input_nick = lightcyan -item_away = yellow item_channel_modes = default item_lag_counting = default item_lag_finished = yellow @@ -76,14 +78,15 @@ nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue" notice = green reason_quit = default +topic_current = default topic_new = white topic_old = darkgray [network] -alternate_nick = on autoreconnect_delay_growing = 2 autoreconnect_delay_max = 1800 ban_mask_default = "*!$ident@$host" +channel_encode = off colors_receive = on colors_send = on lag_check = 60 @@ -93,6 +96,7 @@ lag_refresh_interval = 1 notify_check_ison = 1 notify_check_whois = 5 +sasl_fail_unavailable = on send_unknown_commands = off whois_double_nick = on @@ -118,17 +122,19 @@ command = "" command_delay = 0 connection_timeout = 60 -default_msg_kick = "" -default_msg_part = "WeeChat %v" -default_msg_quit = "WeeChat %v" ipv6 = on local_hostname = "" +msg_kick = "" +msg_part = "WeeChat ${info:version}" +msg_quit = "WeeChat ${info:version}" nicks = "lordabdul,lordabdul1,lordabdul2,lordabdul3,lordabdul4" +nicks_alternate = on notify = "" password = "" proxy = "" realname = "" sasl_fail = continue +sasl_key = "" sasl_mechanism = plain sasl_password = "" sasl_timeout = 15 @@ -139,154 +145,47 @@ ssl_fingerprint = "" ssl_priorities = "NORMAL" ssl_verify = on +usermode = "" username = "lordabdul" [server] -freenode.addresses = "chat.freenode.net/6667" -freenode.proxy -freenode.ipv6 -freenode.ssl -freenode.ssl_cert -freenode.ssl_priorities -freenode.ssl_dhkey_size -freenode.ssl_fingerprint -freenode.ssl_verify -freenode.password -freenode.capabilities -freenode.sasl_mechanism -freenode.sasl_username -freenode.sasl_password -freenode.sasl_timeout -freenode.sasl_fail -freenode.autoconnect = on -freenode.autoreconnect -freenode.autoreconnect_delay -freenode.nicks -freenode.username -freenode.realname -freenode.local_hostname -freenode.command = "/msg nickserv identify lordabdul ${sec.data.freenode}" -freenode.command_delay -freenode.autojoin = "#duckduckgo,#mercurial,#pentadactyl,#vimperator,#twister" -freenode.autorejoin -freenode.autorejoin_delay -freenode.connection_timeout -freenode.anti_flood_prio_high -freenode.anti_flood_prio_low -freenode.away_check -freenode.away_check_max_nicks -freenode.default_msg_kick -freenode.default_msg_part -freenode.default_msg_quit -freenode.notify -quakenet.addresses = "irc.quakenet.org/6667" -quakenet.proxy -quakenet.ipv6 -quakenet.ssl -quakenet.ssl_cert -quakenet.ssl_priorities -quakenet.ssl_dhkey_size -quakenet.ssl_fingerprint -quakenet.ssl_verify -quakenet.password -quakenet.capabilities -quakenet.sasl_mechanism -quakenet.sasl_username -quakenet.sasl_password -quakenet.sasl_timeout -quakenet.sasl_fail -quakenet.autoconnect = on -quakenet.autoreconnect -quakenet.autoreconnect_delay -quakenet.nicks -quakenet.username -quakenet.realname -quakenet.local_hostname -quakenet.command = "= "/msg nickserv identify lordabdul ${sec.data.quakenet}"" -quakenet.command_delay -quakenet.autojoin = "#geekzonefr" -quakenet.autorejoin -quakenet.autorejoin_delay -quakenet.connection_timeout -quakenet.anti_flood_prio_high -quakenet.anti_flood_prio_low -quakenet.away_check -quakenet.away_check_max_nicks -quakenet.default_msg_kick -quakenet.default_msg_part -quakenet.default_msg_quit -quakenet.notify -sorcery.addresses = "irc.sorcery.net/6667" -sorcery.proxy -sorcery.ipv6 -sorcery.ssl -sorcery.ssl_cert -sorcery.ssl_priorities -sorcery.ssl_dhkey_size -sorcery.ssl_fingerprint -sorcery.ssl_verify -sorcery.password -sorcery.capabilities -sorcery.sasl_mechanism -sorcery.sasl_username -sorcery.sasl_password -sorcery.sasl_timeout -sorcery.sasl_fail -sorcery.autoconnect = on -sorcery.autoreconnect -sorcery.autoreconnect_delay -sorcery.nicks -sorcery.username -sorcery.realname -sorcery.local_hostname -sorcery.command = "= "/msg nickserv identify lordabdul ${sec.data.sorcery}"" -sorcery.command_delay -sorcery.autojoin = "#GURPS" -sorcery.autorejoin -sorcery.autorejoin_delay -sorcery.connection_timeout -sorcery.anti_flood_prio_high -sorcery.anti_flood_prio_low -sorcery.away_check -sorcery.away_check_max_nicks -sorcery.default_msg_kick -sorcery.default_msg_part -sorcery.default_msg_quit -sorcery.notify -oftc.addresses = "irc.oftc.net/6667" -oftc.proxy -oftc.ipv6 -oftc.ssl -oftc.ssl_cert -oftc.ssl_priorities -oftc.ssl_dhkey_size -oftc.ssl_fingerprint -oftc.ssl_verify -oftc.password -oftc.capabilities -oftc.sasl_mechanism -oftc.sasl_username -oftc.sasl_password -oftc.sasl_timeout -oftc.sasl_fail -oftc.autoconnect -oftc.autoreconnect -oftc.autoreconnect_delay -oftc.nicks -oftc.username -oftc.realname -oftc.local_hostname -oftc.command = "/msg nickserv identify ${sec.data.oftc}" -oftc.command_delay -oftc.autojoin = "#pentadactyl" -oftc.autorejoin -oftc.autorejoin_delay -oftc.connection_timeout -oftc.anti_flood_prio_high -oftc.anti_flood_prio_low -oftc.away_check -oftc.away_check_max_nicks -oftc.default_msg_kick -oftc.default_msg_part -oftc.default_msg_quit -oftc.notify +Freenode.addresses = "barjoland.chabant.com/6697" +Freenode.proxy +Freenode.ipv6 +Freenode.ssl = off +Freenode.ssl_cert +Freenode.ssl_priorities +Freenode.ssl_dhkey_size +Freenode.ssl_fingerprint +Freenode.ssl_verify +Freenode.password = "${sec.data.zncpass}" +Freenode.capabilities +Freenode.sasl_mechanism +Freenode.sasl_username +Freenode.sasl_password +Freenode.sasl_key +Freenode.sasl_timeout +Freenode.sasl_fail +Freenode.autoconnect = on +Freenode.autoreconnect +Freenode.autoreconnect_delay +Freenode.nicks +Freenode.nicks_alternate +Freenode.username = "abdul@${sec.data.clientname}/Freenode" +Freenode.realname +Freenode.local_hostname +Freenode.usermode +Freenode.command +Freenode.command_delay +Freenode.autojoin +Freenode.autorejoin +Freenode.autorejoin_delay +Freenode.connection_timeout +Freenode.anti_flood_prio_high +Freenode.anti_flood_prio_low +Freenode.away_check +Freenode.away_check_max_nicks +Freenode.msg_kick +Freenode.msg_part +Freenode.msg_quit +Freenode.notify
--- a/weechat/logger.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/logger.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# logger.conf -- weechat v1.1.1 +# weechat -- logger.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [look]
--- a/weechat/plugins.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/plugins.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# plugins.conf -- weechat v1.1.1 +# weechat -- plugins.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [var]
--- a/weechat/relay.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/relay.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# relay.conf -- weechat v1.1.1 +# weechat -- relay.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [look] @@ -18,6 +25,7 @@ text_selected = white [network] +allow_empty_password = off allowed_ips = "" bind_address = "" clients_purge_delay = 0 @@ -33,6 +41,7 @@ backlog_max_minutes = 1440 backlog_max_number = 256 backlog_since_last_disconnect = on +backlog_since_last_message = off backlog_tags = "irc_privmsg" backlog_time_format = "[%H:%M] "
--- a/weechat/script.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/script.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# script.conf -- weechat v1.1.1 +# weechat -- script.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [look] @@ -43,7 +50,7 @@ [scripts] autoload = on cache_expire = 60 -dir = "%h/script" +download_timeout = 30 hold = "" +path = "%h/script" url = "http://www.weechat.org/files/plugins.xml.gz" -url_force_https = on
--- a/weechat/sec.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/sec.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# sec.conf -- weechat v1.1.1 +# weechat -- sec.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [crypt] @@ -10,11 +17,10 @@ [data] __passphrase__ = on -oftc = "40753E8A461523676DBF416B4C04EDF3241C5BC485A827B16D2D5952C3616C7BEBC81FA1A19B73D692CBAA3FC811612573C3664A93EAC55920" -quakenet = "30268C16DE972F7754CCE9D835716DEF85D7E5C80D2D79151CBB8899650E82D2B00B0EE141E2427613A750B4790F6C429C56E2" -pushover_user = "095F359C99F198FB3FDD23DE4609EC66BEB6967C1C39AE0A6FA9B12A65A76032F49070B7D89FB33B47126B560F00FB0B3F7001D0BF9C59BA64F0FEC9E93C7D578548C2782E6354" -pushover_token = "390435DBF85BF2413E8E95B2E8DFC4C668874A139B3148E56EC18E01A0A29382AEACFC8B6B2BDFA6428219FF8553A860A9C40425D72A044037E4B8852F7AE810ABC23F2521252F" -freenode = "1B205EDFB00558BA62E9D6F4565343EE70DF64C207D8E5F15C573A1087CDE5F76808CFB5E92726BF916EE8100594A9F860A9A6D44EFAC8" -nicks = "994DBBF0DC2B13AC411E5C349847150A3656157AD2E2BB2B7E1D992A8626ECFDD07447D949F758351E6A6E162105F8562A9EABE391616469611250FA9C137914A4B5D6B19CEC60010EFA66D6C0E0196A3E396B4246C1B2B771D4D5FCE324" -nick = "7BC509DCB03C795F767D6830E90A1C8526AFCC71CE3D5C3C74A6AE6F5F05C225713EBCEA5092B006EE06ECE47BAEF1FEA27A" -sorcery = "8558F49241E58C7F53C1BC2D770F7D79A2A9B1DAFBD46E18D80F6B9B778D73665E84D49066969A0CD29F636E48D44F76329A3376272AB4" +pushover_user = "873EFDDC6FAD9E952BCD83A0994EA9C75A1BCC90A1734311CC493ED51B99A297FAEADCA259DC4C755C388C759C485D7EFE406B97287C1DD72A38EAD4DD0B3081623616BEB44859" +pushover_token = "7D8116A5478B813C9DD2F7E3B110622EB4E825D5E8CE0F5BE0DC0E6F88E81E92A3DD7167E259F1C1A1C85E10DFAB9F8ABC8076207FBD4863F972D5C4FB855FC56740589D152EAE" +freenode = "8183C7A49803CF71F653AB10387682B27FCF6738ADEB38930A3DF50209BAF9F017D19883805904320E4D7AC15736D50B8B67AA64497E91" +nicks = "195669817613F6199E0638E03BF09076A60FEF8E8588F847B4BA620BBB1192EB244BB809EA6EFB9D156CAA747D3A66371586E3462D0959F38AC82CC43EB6807CF8ABAE38C49AB12458421FF54A070E134A78A390B44A238B2812A6F59E63" +nick = "0DF8A7212121CF98C19F6091A17876199E6465F15B695C7E8A0D1ECABDC3210924D8479E5955A5A6802FD316EF10BB086BBC" +clientname = "DCDDC5BEAF65ACEC8A1B7C50E9DB99D4C5E0B08859301447BF39403C407FA525BAA5C7DA9CEC5B0DCBA359632608971A7283" +zncpass = "299F573454AE8DEDF2E36D5091299ACB5DD07F90A3E78B6205B2DDD206FC9D4B22532EBDBD1053E6AE14AA5782F131A685AB938FD94474CE323E6ED4207F0E"
--- a/weechat/trigger.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/trigger.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# trigger.conf -- weechat v1.1.1 +# weechat -- trigger.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [look] @@ -9,6 +16,7 @@ [color] flag_command = lightgreen flag_conditions = yellow +flag_post_action = lightblue flag_regex = lightcyan flag_return_code = lightmagenta regex = white @@ -22,6 +30,7 @@ beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})" beep.enabled = on beep.hook = print +beep.post_action = none beep.regex = "" beep.return_code = ok cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" @@ -29,6 +38,7 @@ cmd_pass.conditions = "" cmd_pass.enabled = on cmd_pass.hook = modifier +cmd_pass.post_action = none cmd_pass.regex = "==^((/(msg|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" cmd_pass.return_code = ok msg_auth.arguments = "5000|irc_message_auth" @@ -36,6 +46,7 @@ msg_auth.conditions = "" msg_auth.enabled = on msg_auth.hook = modifier +msg_auth.post_action = none msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" msg_auth.return_code = ok server_pass.arguments = "5000|input_text_display;5000|history_add" @@ -43,5 +54,6 @@ server_pass.conditions = "" server_pass.enabled = on server_pass.hook = modifier +server_pass.post_action = none server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" server_pass.return_code = ok
--- a/weechat/weechat.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/weechat.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# weechat.conf -- weechat v1.1.1 +# weechat -- weechat.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [debug] @@ -13,6 +20,7 @@ [look] align_end_of_lines = message +align_multiline_words = on bar_more_down = "++" bar_more_left = "<<" bar_more_right = ">>" @@ -40,6 +48,7 @@ command_chars = "" command_incomplete = off confirm_quit = off +confirm_upgrade = off day_change = on day_change_message_1date = "-- %a, %d %b %Y --" day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --" @@ -66,6 +75,7 @@ input_share = none input_share_overwrite = off input_undo_max = 32 +item_away_message = on item_buffer_filter = "*" item_buffer_zoom = "!" item_mouse_status = "M" @@ -74,10 +84,15 @@ jump_previous_buffer_when_closing = on jump_smart_back_to_buffer = on key_bind_safe = on +key_grab_delay = 800 mouse = off mouse_timer_delay = 100 +nick_color_force = "" +nick_color_hash = djb2 +nick_color_stop_chars = "_|[" nick_prefix = "" nick_suffix = "" +paste_auto_add_newline = on paste_bracketed = off paste_bracketed_timer_delay = 10 paste_max_lines = 1 @@ -97,6 +112,9 @@ prefix_quit = "<--" prefix_same_nick = "" prefix_suffix = "|" +quote_nick_prefix = "<" +quote_nick_suffix = ">" +quote_time_format = "%H:%M:%S" read_marker = line read_marker_always_show = off read_marker_string = "- " @@ -114,6 +132,8 @@ window_separator_horizontal = on window_separator_vertical = on window_title = "WeeChat ${info:version}" +word_chars_highlight = "!\u00A0,-,_,|,alnum" +word_chars_input = "!\u00A0,-,_,|,alnum" [palette] @@ -157,13 +177,14 @@ chat_time = default chat_time_delimiters = brown chat_value = cyan +chat_value_null = blue emphasized = yellow emphasized_bg = magenta input_actions = lightgreen input_text_not_found = red +item_away = yellow nicklist_away = cyan nicklist_group = green -nicklist_offline = blue separator = blue status_count_highlight = magenta status_count_msg = brown @@ -187,6 +208,7 @@ command_inline = on default_template = "%(nicks)|%(irc_channels)" nick_add_space = on +nick_case_sensitive = off nick_completer = ":" nick_first_only = off nick_ignore_chars = "[]`_-^" @@ -233,6 +255,20 @@ buffers.size = 0 buffers.size_max = 0 buffers.type = root +buflist.color_bg = default +buflist.color_delim = default +buflist.color_fg = default +buflist.conditions = "" +buflist.filling_left_right = vertical +buflist.filling_top_bottom = columns_vertical +buflist.hidden = off +buflist.items = "buflist" +buflist.position = left +buflist.priority = 0 +buflist.separator = on +buflist.size = 0 +buflist.size_max = 0 +buflist.type = root input.color_bg = default input.color_delim = cyan input.color_fg = default @@ -309,7 +345,7 @@ [notify] [filter] -irc_smart = on;*;irc_smart_filter;* +irc_smart = off;*;irc_smart_filter;* [key] ctrl-? = "/input delete_previous_char" @@ -339,6 +375,8 @@ ctrl-W = "/input delete_previous_word" ctrl-X = "/input switch_active_buffer" ctrl-Y = "/input clipboard_paste" +meta-meta-OP = "/bar scroll buflist * b" +meta-meta-OQ = "/bar scroll buflist * e" meta-meta2-1~ = "/window scroll_top" meta-meta2-23~ = "/bar scroll nicklist * b" meta-meta2-24~ = "/bar scroll nicklist * e" @@ -371,6 +409,8 @@ meta-OD = "/input move_previous_word" meta-OF = "/input move_end_of_line" meta-OH = "/input move_beginning_of_line" +meta-OP = "/bar scroll buflist * -100%" +meta-OQ = "/bar scroll buflist * +100%" meta-Oa = "/input history_global_previous" meta-Ob = "/input history_global_next" meta-Oc = "/input move_next_word" @@ -578,6 +618,8 @@ [key_mouse] @bar(buffers):ctrl-wheeldown = "hsignal:buffers_mouse" @bar(buffers):ctrl-wheelup = "hsignal:buffers_mouse" +@bar(buflist):ctrl-wheeldown = "hsignal:buflist_mouse" +@bar(buflist):ctrl-wheelup = "hsignal:buflist_mouse" @bar(input):button2 = "/input grab_mouse_area" @bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%" @bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e" @@ -598,6 +640,8 @@ @item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}" @item(buffers):button1* = "hsignal:buffers_mouse" @item(buffers):button2* = "hsignal:buffers_mouse" +@item(buflist):button1* = "hsignal:buflist_mouse" +@item(buflist):button2* = "hsignal:buflist_mouse" @bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%" @bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%" @chat:button1 = "/window ${_window_number}"
--- a/weechat/xfer.conf Wed Sep 13 10:58:17 2017 -0700 +++ b/weechat/xfer.conf Wed Jan 10 00:05:36 2018 -0800 @@ -1,5 +1,12 @@ # -# xfer.conf -- weechat v1.1.1 +# weechat -- xfer.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart # [look]