X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=blobdiff_plain;f=.vimrc;h=9128b9448e7b4d9d850680e1e5980822cf9cb5e6;hp=4a8453c2a933a4e2556258ec41bff049a290f2b2;hb=c1fb9100f55005a4d854b99cee25d4ef056569ce;hpb=cc503da922b66a8fa3c6dacd90b13115e937f03e diff --git a/.vimrc b/.vimrc index 4a8453c..9128b94 100644 --- a/.vimrc +++ b/.vimrc @@ -573,15 +573,11 @@ endif if has("python") -python << END_OF_PYTHON -import sys, os - -virtualenv_dir = os.environ.get('VIRTUAL_ENV') -if virtualenv_dir: - sys.path.insert(0, virtualenv_dir) - activate_this = os.path.join(virtualenv_dir, 'bin', 'activate_this.py') - execfile(activate_this, dict(__file__=activate_this)) -END_OF_PYTHON +pyfile ~/.vim/python/virtualenv.py +endif + +if has("python3") +py3file ~/.vim/python/virtualenv.py endif @@ -732,70 +728,7 @@ endfunction if has("python") - -python << END_OF_PYTHON - -import sys, rlcompleter, unicodedata, vim -from itertools import * -vim_complete = rlcompleter.Completer().complete - -def vim_comp_list(): - """Implementation of CompList() function""" - arglead = vim.eval("a:ArgLead") - fence = int(vim.eval("match(a:ArgLead, '\(\w\|\.\)*$')")) - left, right = arglead[:fence], arglead[fence:] - try: - completions = (vim_complete(right, i) for i in count()) - candidates = list(takewhile(bool, completions)) - except NameError: - candidates = [] - suggestions = [left + x for x in candidates] - vim.command("return " + repr(suggestions)) - -def vim_calc(command): - """Implementation of :Calc command""" - global _ - try: - result = eval(command) - except SyntaxError: - exec command in globals() - else: - if result != None: - print result - _ = result - xx = ''.join('\\x%02x' % ord(x) for x in str(_)) - vim.command('let @" = "%s"' % xx) - -def vim_pydo(command): - """Implementation of :Pydo command""" - codeobj = compile(command, "command", "eval") - line1 = vim.current.range.start - line2 = vim.current.range.end - delta = 0 - for numz in range(line1, line2+1): - line = vim.current.buffer[numz-delta] - uline = unicode(line, vim.eval('&fileencoding')) - num = numz + 1 - words = line.split() - result = eval(codeobj, globals(), locals()) - if result is None or result is False: - del vim.current.buffer[numz-delta] - delta += 1 - continue - if isinstance(result, list) or isinstance(result, tuple): - result = " ".join(map(str, result)) - else: - result = str(result) - vim.current.buffer[numz-delta] = result - -def vim_unicode_name(): - try: - char = vim.eval("matchstr(getline('.'), '.', col('.') - 1)") - print map(unicodedata.name, char.decode(vim.eval("&encoding"))) - except (AttributeError, ValueError), target: - print "%s: %s" % (target.__class__.__name__, target.message) - -END_OF_PYTHON +pyfile ~/.vim/python/completion.py " Custom completion for python expressions function! CompList(ArgLead, CmdLine, CursorPos) @@ -812,8 +745,30 @@ command! -nargs=+ -range -complete=customlist,CompList Pydo " Display unicode name for the character under cursor command! Uname python vim_unicode_name() -command! UName call Uname() +endif + +if has("python3") +py3file ~/.vim/python/completion.py + +" Custom completion for python expressions +function! CompList(ArgLead, CmdLine, CursorPos) + python3 vim_comp_list() +endfunction + +" Python command line calculator +command! -nargs=+ -range -complete=customlist,CompList Calc + \ , python3 vim_calc() + +" Python text range filter +command! -nargs=+ -range -complete=customlist,CompList Pydo + \ , python3 vim_pydo() + +" Display unicode name for the character under cursor +command! Uname python3 vim_unicode_name() +endif +if has("python") || has("python3") +command! UName Uname endif " ----------