From 54898c7244371cc9af576c372a6e6243125d07f9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 11 Feb 2025 18:46:21 +0100 Subject: [PATCH] Adding upstream version 0.16.1. Signed-off-by: Daniel Baumann --- .gita-completion.bash | 2 + Makefile | 4 +- README.md | 15 +- doc/README_CN.md | 2 +- doc/video-outline.png | Bin 0 -> 168883 bytes gita/__main__.py | 56 ++- gita/common.py | 15 +- gita/utils.py | 100 ++---- setup.py | 2 +- tests/conftest.py | 1 - tests/main_path_file | 2 - tests/test_main.py | 5 +- tests/test_utils.py | 2 +- work.vim | 766 ------------------------------------------ 14 files changed, 83 insertions(+), 889 deletions(-) create mode 100644 doc/video-outline.png delete mode 100644 tests/main_path_file delete mode 100644 work.vim diff --git a/.gita-completion.bash b/.gita-completion.bash index 493db05..cad120c 100644 --- a/.gita-completion.bash +++ b/.gita-completion.bash @@ -3,10 +3,12 @@ _gita_completions() { local cur commands repos cmd + local IFS=$'\n\t ' cur=${COMP_WORDS[COMP_CWORD]} cmd=${COMP_WORDS[1]} + # this doesn't work for two repos with the same basename #gita_path=${XDG_CONFIG_HOME:-$HOME/.config}/gita/repo_path #repos=`awk '{split($0, paths, ":")} END {for (i in paths) {n=split(paths[i],b, /\//); print b[n]}}' ${gita_path}` diff --git a/Makefile b/Makefile index c67d4a7..c2db6b9 100644 --- a/Makefile +++ b/Makefile @@ -2,9 +2,9 @@ install: pip3 install -e . -test: clean +test: pytest tests --cov=./gita $(TEST_ARGS) -n=auto -dist: clean +dist: python3 setup.py sdist twine: twine upload dist/* diff --git a/README.md b/README.md index d54ec25..746af4b 100644 --- a/README.md +++ b/README.md @@ -14,18 +14,15 @@ | | ____ | | | | | ___ | | | \_ ) | | | | | ( ) | | (___) |__) (___ | | | ) ( | -(_______)_______/ )_( |/ \| v0.15 +(_______)_______/ )_( |/ \| v0.16 ``` # Gita: a command-line tool to manage multiple git repos -This tool does two things +This tool has two main features - display the status of multiple git repos such as branch, modification, commit message side by side -- (batch) delegate git commands/aliases from any working directory - -If several repos are related, it helps to see their status together. -I also hate to change directories to execute git commands. +- (batch) delegate git commands/aliases and shell commands on repos from any working directory ![gita screenshot](https://github.com/nosarthur/gita/raw/master/doc/screenshot.png) @@ -39,6 +36,9 @@ To add your own commands, see the [customization section](#custom). To run arbitrary `git` command, see the [superman mode section](#superman). To run arbitrary shell command, see the [shell mode section](#shell). +I also made a youtube video to demonstrate the common usages +[![Img alt text](https://github.com/nosarthur/gita/raw/master/doc/video-outline.png)](https://www.youtube.com/watch?v=ySWbwQcbhqI) + The branch color distinguishes 5 situations between local and remote branches: color | meaning @@ -65,7 +65,7 @@ symbol | meaning The bookkeeping sub-commands are -- `gita add `: add repo(s) to `gita` +- `gita add [-g ]`: add repo(s) to `gita`, optionally into an existing group - `gita add -a `: add repo(s) in recursively and automatically generate hierarchical groups. See the [customization section](#custom) for more details. - `gita add -b `: add bare repo(s) to `gita`. See the [customization section](#custom) for more details on setting custom worktree. @@ -79,6 +79,7 @@ The bookkeeping sub-commands are - `gita context none`: remove context - `gita color`: color sub-command - `gita color [ll]`: Show available colors and the current coloring scheme + - `gita color reset`: Reset to the default coloring scheme - `gita color set `: Use the specified color for the local-remote situation - `gita flags`: flags sub-command - `gita flags set `: add custom `flags` to repo diff --git a/doc/README_CN.md b/doc/README_CN.md index 592ad6d..23a9102 100644 --- a/doc/README_CN.md +++ b/doc/README_CN.md @@ -14,7 +14,7 @@ | | ____ | | | | | ___ | | | \_ ) | | | | | ( ) | | (___) |__) (___ | | | ) ( | -(_______)_______/ )_( |/ \| v0.15 +(_______)_______/ )_( |/ \| v0.16 ``` # Gita:一个管理多个 git 库的命令行工具 diff --git a/doc/video-outline.png b/doc/video-outline.png new file mode 100644 index 0000000000000000000000000000000000000000..256be4a523d9e9bd5e92092c85100950e93d8b39 GIT binary patch literal 168883 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 CB9dqT literal 0 HcmV?d00001 diff --git a/gita/__main__.py b/gita/__main__.py index 7e5e6bd..b4057ec 100644 --- a/gita/__main__.py +++ b/gita/__main__.py @@ -59,34 +59,24 @@ def f_add(args: argparse.Namespace): repos = utils.get_repos() paths = args.paths groups = utils.get_groups() - if 0: - # add to global and tag as main - main_repos = utils.add_repos(repos, paths, repo_type='m') - # add sub-repo recursively and save to local config - for name, prop in main_repos.items(): - main_path = prop['path'] - print('Inside main repo:', name) - #sub_paths = Path(main_path).glob('**') - sub_paths = glob.glob(os.path.join(main_path,'**/'), recursive=True) - utils.add_repos({}, sub_paths, root=main_path) - else: - if args.recursive or args.auto_group: - paths = (p.rstrip(os.path.sep) for p in chain.from_iterable( - glob.glob(os.path.join(p, '**/'), recursive=True) - for p in args.paths)) - new_repos = utils.add_repos(repos, paths, is_bare=args.bare) - if new_repos and args.auto_group: - new_groups = utils.auto_group(new_repos, args.paths) - if new_groups: - print(f'Created {len(new_groups)} new group(s).') - utils.write_to_groups_file(new_groups, 'a+') - if new_repos and args.group: - gname = args.group - gname_repos = set(groups[gname]['repos']) - gname_repos.update(new_repos) - groups[gname]['repos'] = sorted(gname_repos) - print(f'Added {len(new_repos)} repos to the {gname} group') - utils.write_to_groups_file(groups, 'w') + if args.recursive or args.auto_group: + paths = (p.rstrip(os.path.sep) for p in chain.from_iterable( + glob.glob(os.path.join(p, '**/'), recursive=True) + for p in args.paths)) + new_repos = utils.add_repos(repos, paths, include_bare=args.bare, + exclude_submodule=args.skip_submodule) + if new_repos and args.auto_group: + new_groups = utils.auto_group(new_repos, args.paths) + if new_groups: + print(f'Created {len(new_groups)} new group(s).') + utils.write_to_groups_file(new_groups, 'a+') + if new_repos and args.group: + gname = args.group + gname_repos = set(groups[gname]['repos']) + gname_repos.update(new_repos) + groups[gname]['repos'] = sorted(gname_repos) + print(f'Added {len(new_repos)} repos to the {gname} group') + utils.write_to_groups_file(groups, 'w') def f_rename(args: argparse.Namespace): @@ -164,11 +154,11 @@ def f_freeze(_): seen = {''} for name, prop in repos.items(): path = prop['path'] - # TODO: What do we do with main repos? Maybe give an option to print - # their sub-repos too. url = '' - cp = subprocess.run(['git', 'remote', '-v'], cwd=path, capture_output=True) - lines = cp.stdout.decode('utf-8').split('\n') + # FIXME: capture_output is new in 3.7. Maybe drop support for 3.6 + cp = subprocess.run(['git', 'remote', '-v'], cwd=path, + universal_newlines=True, capture_output=True) + lines = cp.stdout.split('\n') if cp.returncode == 0 and len(lines) > 0: parts = lines[0].split() if len(parts)>1: @@ -402,6 +392,8 @@ def main(argv=None): p_add.add_argument('-g','--group', choices=utils.get_groups(), help="add repo(s) to the specified group") + p_add.add_argument('-s', '--skip-submodule', action='store_true', + help="skip submodule repo(s)") xgroup = p_add.add_mutually_exclusive_group() xgroup.add_argument('-r', '--recursive', action='store_true', help="recursively add repo(s) in the given path(s).") diff --git a/gita/common.py b/gita/common.py index abbef5f..e1a3dde 100644 --- a/gita/common.py +++ b/gita/common.py @@ -1,17 +1,14 @@ import os -def get_config_dir(root=None) -> str: - if root is None: - root = os.environ.get('XDG_CONFIG_HOME') or os.path.join( - os.path.expanduser('~'), '.config') - return os.path.join(root, "gita") - else: - return os.path.join(root, ".gita") +def get_config_dir() -> str: + root = os.environ.get('XDG_CONFIG_HOME') or os.path.join( + os.path.expanduser('~'), '.config') + return os.path.join(root, "gita") -def get_config_fname(fname: str, root=None) -> str: +def get_config_fname(fname: str) -> str: """ Return the file name that stores the repo locations. """ - return os.path.join(get_config_dir(root), fname) + return os.path.join(get_config_dir(), fname) diff --git a/gita/utils.py b/gita/utils.py index 2431fde..8e7d9c4 100644 --- a/gita/utils.py +++ b/gita/utils.py @@ -38,14 +38,12 @@ def get_relative_path(kid: str, parent: str) -> Union[List[str], None]: @lru_cache() -def get_repos(root=None) -> Dict[str, Dict[str, str]]: +def get_repos() -> Dict[str, Dict[str, str]]: """ Return a `dict` of repo name to repo absolute path and repo type - @param root: Use local config if set. If None, use either global or local - config depending on cwd. """ - path_file = common.get_config_fname('repos.csv', root) + path_file = common.get_config_fname('repos.csv') repos = {} if os.path.isfile(path_file) and os.stat(path_file).st_size > 0: with open(path_file) as f: @@ -54,13 +52,7 @@ def get_repos(root=None) -> Dict[str, Dict[str, str]]: repos = {r['name']: {'path': r['path'], 'type': r['type'], 'flags': r['flags'].split()} - for r in rows if is_git(r['path'], is_bare=True)} - if root is None: # detect if inside a main path - cwd = os.getcwd() - for prop in repos.values(): - path = prop['path'] - if prop['type'] == 'm' and get_relative_path(cwd, path) != MAX_INT: - return get_repos(path) + for r in rows if is_git(r['path'], include_bare=True)} return repos @@ -82,7 +74,6 @@ def get_context() -> Union[Path, None]: ctx = matches[0] if ctx.stem == 'auto': cwd = str(Path.cwd()) - repos = get_repos() # The context is set to be the group with minimal distance to cwd candidate = None min_dist = MAX_INT @@ -102,7 +93,7 @@ def get_context() -> Union[Path, None]: @lru_cache() -def get_groups() -> Dict[str, Dict]: +def get_groups() -> Dict[str, Dict[str, Union[str, List]]]: """ Return a `dict` of group name to group properties such as repo names and group path. @@ -152,7 +143,7 @@ def replace_context(old: Union[Path, None], new: str): # ctx.rename(ctx.with_stem(new_name)) # only works in py3.9 old.rename(old.with_name(f'{new}.context')) else: - open(auto.with_name(f'{new}.context'), 'w').close() + Path(auto.with_name(f'{new}.context')).write_text('') def get_choices() -> List[Union[str, None]]: @@ -170,7 +161,16 @@ def get_choices() -> List[Union[str, None]]: return choices -def is_git(path: str, is_bare=False) -> bool: +def is_submodule_repo(p: Path) -> bool: + """ + + """ + if p.is_file() and '.git/modules' in p.read_text(): + return True + return False + + +def is_git(path: str, include_bare=False, exclude_submodule=False) -> bool: """ Return True if the path is a git repo. """ @@ -178,16 +178,18 @@ def is_git(path: str, is_bare=False) -> bool: return False # An alternative is to call `git rev-parse --is-inside-work-tree` # I don't see why that one is better yet. - # For a regular git repo, .git is a folder, for a worktree repo, .git is a file. - # However, git submodule repo also has .git as a file. + # For a regular git repo, .git is a folder. For a worktree repo and + # submodule repo, .git is a file. # A more reliable way to differentiable regular and worktree repos is to # compare the result of `git rev-parse --git-dir` and # `git rev-parse --git-common-dir` loc = os.path.join(path, '.git') # TODO: we can display the worktree repos in a different font. if os.path.exists(loc): + if exclude_submodule and is_submodule_repo(Path(loc)): + return False return True - if not is_bare: + if not include_bare: return False # detect bare repo got = subprocess.run('git rev-parse --is-bare-repository'.split(), @@ -209,37 +211,26 @@ def rename_repo(repos: Dict[str, Dict[str, str]], repo: str, new_name: str): prop = repos[repo] del repos[repo] repos[new_name] = prop - # write to local config if inside a main path - main_paths = (prop['path'] for prop in repos.values() if prop['type'] == 'm') - cwd = os.getcwd() - is_local_config = True - # TODO: delete - for p in main_paths: - if get_relative_path(cwd, p) != MAX_INT: - write_to_repo_file(repos, 'w', p) - break - else: # global config - write_to_repo_file(repos, 'w') - is_local_config = False - # update groups only when outside any main repos - if is_local_config: - return + write_to_repo_file(repos, 'w') + groups = get_groups() - for g, members in groups.items(): + for g, values in groups.items(): + members = values['repos'] if repo in members: members.remove(repo) members.append(new_name) - groups[g] = sorted(members) + groups[g]['repos'] = sorted(members) write_to_groups_file(groups, 'w') -def write_to_repo_file(repos: Dict[str, Dict[str, str]], mode: str, root=None): +def write_to_repo_file(repos: Dict[str, Dict[str, str]], mode: str): """ @param repos: each repo is {name: {properties}} """ - data = [(prop['path'], name, prop['type'], ' '.join(prop['flags'])) + # The 3rd column is repo type; unused field + data = [(prop['path'], name, '', ' '.join(prop['flags'])) for name, prop in repos.items()] - fname = common.get_config_fname('repos.csv', root) + fname = common.get_config_fname('repos.csv') os.makedirs(os.path.dirname(fname), exist_ok=True) with open(fname, mode, newline='') as f: writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) @@ -254,7 +245,7 @@ def write_to_groups_file(groups: Dict[str, Dict], mode: str): fname = common.get_config_fname('groups.csv') os.makedirs(os.path.dirname(fname), exist_ok=True) if not groups: # all groups are deleted - open(fname, 'w').close() + Path(fname).write_text('') else: # delete the group if there are no repos for name in list(groups): @@ -285,27 +276,17 @@ def _make_name(path: str, repos: Dict[str, Dict[str, str]], return name -# TODO: delete -def _get_repo_type(path, repo_type, root) -> str: - """ - - """ - if repo_type != '': # explicitly set - return repo_type - if root is not None and os.path.normpath(root) == os.path.normpath(path): - return 'm' - return '' - - def add_repos(repos: Dict[str, Dict[str, str]], new_paths: List[str], - repo_type='', root=None, is_bare=False) -> Dict[str, Dict[str, str]]: + include_bare=False, + exclude_submodule=False, + ) -> Dict[str, Dict[str, str]]: """ Write new repo paths to file; return the added repos. @param repos: name -> path """ existing_paths = {prop['path'] for prop in repos.values()} - new_paths = {p for p in new_paths if is_git(p, is_bare)} + new_paths = {p for p in new_paths if is_git(p, include_bare, exclude_submodule)} new_paths = new_paths - existing_paths new_repos = {} if new_paths: @@ -315,12 +296,9 @@ def add_repos(repos: Dict[str, Dict[str, str]], new_paths: List[str], ) new_repos = {_make_name(path, repos, name_counts): { 'path': path, - 'type': _get_repo_type(path, repo_type, root), 'flags': '', } for path in new_paths} - # When root is not None, we could optionally set its type to 'm', i.e., - # main repo. - write_to_repo_file(new_repos, 'a+', root) + write_to_repo_file(new_repos, 'a+') else: print('No new repos found!') return new_repos @@ -442,13 +420,7 @@ def describe(repos: Dict[str, Dict[str, str]], no_colors: bool = False) -> str: for name in sorted(repos): info_items = ' '.join(f(repos[name]) for f in funcs) - if repos[name]['type'] == 'm': - # ANSI color code also takes length in Python - name = f'{info.Color.underline}{name}{info.Color.end}' - width = name_width + 8 - yield f'{name:<{width}}{info_items}' - else: - yield f'{name:<{name_width}}{info_items}' + yield f'{name:<{name_width}}{info_items}' def get_cmds_from_files() -> Dict[str, Dict[str, str]]: diff --git a/setup.py b/setup.py index 8a19666..4be31ed 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ with open('README.md', encoding='utf-8') as f: setup( name='gita', packages=['gita'], - version='0.15.8', + version='0.16.1', license='MIT', description='Manage multiple git repos with sanity', long_description=long_description, diff --git a/tests/conftest.py b/tests/conftest.py index 93576d6..b3e59ed 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -11,7 +11,6 @@ def fullpath(fname: str): PATH_FNAME = fullpath('mock_path_file') PATH_FNAME_EMPTY = fullpath('empty_path_file') PATH_FNAME_CLASH = fullpath('clash_path_file') -PATH_FNAME_MAIN = fullpath('main_path_file') GROUP_FNAME = fullpath('mock_group_file') def async_mock(): diff --git a/tests/main_path_file b/tests/main_path_file deleted file mode 100644 index 8e87ffb..0000000 --- a/tests/main_path_file +++ /dev/null @@ -1,2 +0,0 @@ -/path/to/main/,main1,m -/xxx/xx,xx, diff --git a/tests/test_main.py b/tests/test_main.py index b39ed47..3941ea9 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -9,7 +9,7 @@ import shlex from gita import __main__ from gita import utils, info, common from conftest import ( - PATH_FNAME, PATH_FNAME_EMPTY, PATH_FNAME_CLASH, GROUP_FNAME, PATH_FNAME_MAIN, + PATH_FNAME, PATH_FNAME_EMPTY, PATH_FNAME_CLASH, GROUP_FNAME, async_mock, TEST_DIR, ) @@ -115,8 +115,6 @@ class TestLsLl: (PATH_FNAME, "repo1 cmaster dsu\x1b[0m msg \nrepo2 cmaster dsu\x1b[0m msg \nxxx cmaster dsu\x1b[0m msg \n"), (PATH_FNAME_EMPTY, ""), - (PATH_FNAME_MAIN, - '\x1b[4mmain1\x1b[0m cmaster dsu\x1b[0m msg \nxx cmaster dsu\x1b[0m msg \n'), (PATH_FNAME_CLASH, "repo1 cmaster dsu\x1b[0m msg \nrepo2 cmaster dsu\x1b[0m msg \n" ), @@ -188,6 +186,7 @@ def test_clone_with_preserve_path(*_): mock_run.assert_called_once_with('repo', Path.cwd(), cmds) +@patch('os.makedirs') @patch('os.path.isfile', return_value=True) @patch('gita.common.get_config_fname', return_value='some path') @patch('gita.utils.get_repos', return_value={'repo1': {'path': '/a/', 'type': ''}, diff --git a/tests/test_utils.py b/tests/test_utils.py index 65096e9..7433532 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -176,4 +176,4 @@ def test_is_git(tmpdir): with tmpdir.as_cwd(): subprocess.run('git init --bare .'.split()) assert utils.is_git(Path.cwd()) is False - assert utils.is_git(Path.cwd(), is_bare=True) is True + assert utils.is_git(Path.cwd(), include_bare=True) is True diff --git a/work.vim b/work.vim deleted file mode 100644 index 25ad90f..0000000 --- a/work.vim +++ /dev/null @@ -1,766 +0,0 @@ -let SessionLoad = 1 -if &cp | set nocp | endif -let s:cpo_save=&cpo -set cpo&vim -inoremap (-fzf-complete-finish) l -inoremap CocRefresh =coc#_complete() -inoremap (fzf-maps-i) :call fzf#vim#maps('i', 0) -inoremap (fzf-complete-buffer-line) fzf#vim#complete#buffer_line() -inoremap (fzf-complete-line) fzf#vim#complete#line() -inoremap (fzf-complete-file-ag) fzf#vim#complete#path('ag -l -g ""') -inoremap (fzf-complete-file) fzf#vim#complete#path("find . -path '*/\.*' -prune -o -type f -print -o -type l -print | sed 's:^..::'") -inoremap (fzf-complete-path) fzf#vim#complete#path("find . -path '*/\.*' -prune -o -print | sed '1d;s:^..::'") -inoremap (fzf-complete-word) fzf#vim#complete#word() -inoremap 20_AutoPairsReturn =AutoPairsReturn() -inoremap coc#refresh() -inoremap pumvisible() ? "\" : "\" -map! * -nnoremap * *`` -nmap ,ig IndentGuidesToggle -noremap ,4 4gt -noremap ,3 3gt -noremap ,2 2gt -noremap ,1 1gt -nmap ,d :GitGutterFold -nmap ,r :Rg! -nmap ,b :Buffer -nmap ,l :Lines! -nmap ,w :BLines -nmap ,o :Files! -nmap ,f :GFiles! -nmap ,a :CtrlSF -R "" -nmap ,t :TagbarToggle -noremap , :noh :call clearmatches() -vnoremap ,s :sort -nnoremap ,s :w -noremap ,e :qa! " Quit all windows -noremap ,q :q " Quit current windows -vnoremap <  >gv -nnoremap N Nzzzv -vmap gx NetrwBrowseXVis -nmap gx NetrwBrowseX -nmap g> (swap-next) -nmap g< (swap-prev) -xmap gs (swap-interactive) -nmap gs (swap-interactive) -nmap gr (coc-references) -nmap gi (coc-implementation) -nmap gy (coc-type-definition) -nmap gd (coc-definition) -nnoremap n nzzzv -nnoremap (-fzf-complete-finish) a -nnoremap (-fzf-:) : -nnoremap (-fzf-/) / -nnoremap (-fzf-vim-do) :execute g:__fzf_command -vnoremap NetrwBrowseXVis :call netrw#BrowseXVis() -nnoremap NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX())) -onoremap (coc-classobj-a) :call coc#rpc#request('selectSymbolRange', [v:false, '', ['Interface', 'Struct', 'Class']]) -onoremap (coc-classobj-i) :call coc#rpc#request('selectSymbolRange', [v:true, '', ['Interface', 'Struct', 'Class']]) -vnoremap (coc-classobj-a) :call coc#rpc#request('selectSymbolRange', [v:false, visualmode(), ['Interface', 'Struct', 'Class']]) -vnoremap (coc-classobj-i) :call coc#rpc#request('selectSymbolRange', [v:true, visualmode(), ['Interface', 'Struct', 'Class']]) -onoremap (coc-funcobj-a) :call coc#rpc#request('selectSymbolRange', [v:false, '', ['Method', 'Function']]) -onoremap (coc-funcobj-i) :call coc#rpc#request('selectSymbolRange', [v:true, '', ['Method', 'Function']]) -vnoremap (coc-funcobj-a) :call coc#rpc#request('selectSymbolRange', [v:false, visualmode(), ['Method', 'Function']]) -vnoremap (coc-funcobj-i) :call coc#rpc#request('selectSymbolRange', [v:true, visualmode(), ['Method', 'Function']]) -nnoremap (coc-cursors-position) :call coc#rpc#request('cursorsSelect', [bufnr('%'), 'position', 'n']) -nnoremap (coc-cursors-word) :call coc#rpc#request('cursorsSelect', [bufnr('%'), 'word', 'n']) -vnoremap (coc-cursors-range) :call coc#rpc#request('cursorsSelect', [bufnr('%'), 'range', visualmode()]) -nnoremap (coc-refactor) :call CocActionAsync('refactor') -nnoremap (coc-command-repeat) :call CocAction('repeatCommand') -nnoremap (coc-float-jump) :call coc#float#jump() -nnoremap (coc-float-hide) :call coc#float#close_all() -nnoremap (coc-fix-current) :call CocActionAsync('doQuickfix') -nnoremap (coc-openlink) :call CocActionAsync('openLink') -nnoremap (coc-references-used) :call CocActionAsync('jumpUsed') -nnoremap (coc-references) :call CocActionAsync('jumpReferences') -nnoremap (coc-type-definition) :call CocActionAsync('jumpTypeDefinition') -nnoremap (coc-implementation) :call CocActionAsync('jumpImplementation') -nnoremap (coc-declaration) :call CocActionAsync('jumpDeclaration') -nnoremap (coc-definition) :call CocActionAsync('jumpDefinition') -nnoremap (coc-diagnostic-prev-error) :call CocActionAsync('diagnosticPrevious', 'error') -nnoremap (coc-diagnostic-next-error) :call CocActionAsync('diagnosticNext', 'error') -nnoremap (coc-diagnostic-prev) :call CocActionAsync('diagnosticPrevious') -nnoremap (coc-diagnostic-next) :call CocActionAsync('diagnosticNext') -nnoremap (coc-diagnostic-info) :call CocActionAsync('diagnosticInfo') -nnoremap (coc-format) :call CocActionAsync('format') -nnoremap (coc-rename) :call CocActionAsync('rename') -nnoremap (coc-codeaction-cursor) :call CocActionAsync('codeAction', 'cursor') -nnoremap (coc-codeaction-line) :call CocActionAsync('codeAction', 'line') -nnoremap (coc-codeaction) :call CocActionAsync('codeAction', '') -vnoremap (coc-codeaction-selected) :call CocActionAsync('codeAction', visualmode()) -vnoremap (coc-format-selected) :call CocActionAsync('formatSelected', visualmode()) -nnoremap (coc-codelens-action) :call CocActionAsync('codeLensAction') -nnoremap (coc-range-select) :call CocActionAsync('rangeSelect', '', v:true) -vnoremap (coc-range-select-backward) :call CocActionAsync('rangeSelect', visualmode(), v:false) -vnoremap (coc-range-select) :call CocActionAsync('rangeSelect', visualmode(), v:true) -noremap (swap-textobject-a) :call swap#textobj#select('a') -noremap (swap-textobject-i) :call swap#textobj#select('i') -nnoremap (swap-next) :call swap#prerequisite('n', repeat([['#', '#+1']], v:count1)) g@l -nnoremap (swap-prev) :call swap#prerequisite('n', repeat([['#', '#-1']], v:count1)) g@l -xnoremap (swap-interactive) :call swap#prerequisite('x') gvg@ -nnoremap (swap-interactive) :call swap#prerequisite('n') g@l -onoremap (fzf-maps-o) :call fzf#vim#maps('o', 0) -xnoremap (fzf-maps-x) :call fzf#vim#maps('x', 0) -nnoremap (fzf-maps-n) :call fzf#vim#maps('n', 0) -tnoremap (fzf-normal)  -tnoremap (fzf-insert) i -nnoremap (fzf-normal) -nnoremap (fzf-insert) i -nnoremap CtrlSFQuickfixPrompt :CtrlSFQuickfix -nnoremap CtrlSFPrompt :CtrlSF -nnoremap GitGutterPreviewHunk :call gitgutter#utility#warn('Please change your map GitGutterPreviewHunk to (GitGutterPreviewHunk)') -nnoremap (GitGutterPreviewHunk) :GitGutterPreviewHunk -nnoremap GitGutterUndoHunk :call gitgutter#utility#warn('Please change your map GitGutterUndoHunk to (GitGutterUndoHunk)') -nnoremap (GitGutterUndoHunk) :GitGutterUndoHunk -nnoremap GitGutterStageHunk :call gitgutter#utility#warn('Please change your map GitGutterStageHunk to (GitGutterStageHunk)') -nnoremap (GitGutterStageHunk) :GitGutterStageHunk -xnoremap GitGutterStageHunk :call gitgutter#utility#warn('Please change your map GitGutterStageHunk to (GitGutterStageHunk)') -xnoremap (GitGutterStageHunk) :GitGutterStageHunk -nnoremap GitGutterPrevHunk &diff ? '[c' : ":\call gitgutter#utility#warn('Please change your map \GitGutterPrevHunk to \(GitGutterPrevHunk)')\ " -nnoremap (GitGutterPrevHunk) &diff ? '[c' : ":\execute v:count1 . 'GitGutterPrevHunk'\ " -nnoremap GitGutterNextHunk &diff ? ']c' : ":\call gitgutter#utility#warn('Please change your map \GitGutterNextHunk to \(GitGutterNextHunk)')\ " -nnoremap (GitGutterNextHunk) &diff ? ']c' : ":\execute v:count1 . 'GitGutterNextHunk'\ " -xnoremap (GitGutterTextObjectOuterVisual) :call gitgutter#hunk#text_object(0) -xnoremap (GitGutterTextObjectInnerVisual) :call gitgutter#hunk#text_object(1) -onoremap (GitGutterTextObjectOuterPending) :call gitgutter#hunk#text_object(0) -onoremap (GitGutterTextObjectInnerPending) :call gitgutter#hunk#text_object(1) -vmap "-d -vmap "*d -vmap "*y -vmap "-d"*P -nmap "*P -inoremap  complete_info()["selected"] != "-1" ? "\" : "\u\ " -inoremap ,s :w -let &cpo=s:cpo_save -unlet s:cpo_save -set autoindent -set background=dark -set backspace=2 -set clipboard=unnamed -set expandtab -set fileencodings=ucs-bom,utf-8,default,latin1 -set helplang=en -set hlsearch -set ignorecase -set laststatus=2 -set modelines=0 -set path=.,/usr/include,,,** -set runtimepath=~/.vim,~/.vim/plugged/vim-gitgutter/,~/.vim/plugged/ctrlsf.vim/,~/.vim/plugged/lightline.vim/,~/.vim/plugged/auto-pairs/,~/.vim/plugged/fzf/,~/.vim/plugged/fzf.vim/,~/.vim/plugged/goyo.vim/,~/.vim/plugged/gv.vim/,~/.vim/plugged/seoul256.vim/,~/.vim/plugged/vim-swap/,~/.vim/plugged/tagbar/,~/.vim/plugged/coc.nvim/,~/.vim/plugged/vim-fugitive/,~/.vim/plugged/vim-indent-guides/,/usr/share/vim/vimfiles,/usr/share/vim/vim82,/usr/share/vim/vimfiles/after,~/.vim/plugged/ctrlsf.vim/after,~/.vim/after -set shiftwidth=4 -set smartcase -set noswapfile -set tabline=%!lightline#tabline() -set tabstop=4 -set title -set updatetime=100 -set wildignore=*.pyc -set wildmenu -set wildmode=longest:list,full -set window=0 -set nowritebackup -let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0 -let v:this_session=expand(":p") -silent only -silent tabonly -cd ~/src/gita -if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == '' - let s:wipebuf = bufnr('%') -endif -set shortmess=aoO -argglobal -%argdel -$argadd gita/__main__.py -set stal=2 -tabnew -tabrewind -edit gita/utils.py -set splitbelow splitright -wincmd _ | wincmd | -vsplit -1wincmd h -wincmd w -set nosplitbelow -set nosplitright -wincmd t -set winminheight=0 -set winheight=1 -set winminwidth=0 -set winwidth=1 -exe 'vert 1resize ' . ((&columns * 94 + 94) / 188) -exe 'vert 2resize ' . ((&columns * 93 + 94) / 188) -argglobal -let s:cpo_save=&cpo -set cpo&vim -inoremap :call AutoPairsJump() a -inoremap AutoPairsToggle() -inoremap =AutoPairsBackInsert() -inoremap =AutoPairsFastWrap() -inoremap =AutoPairsDelete() -inoremap =AutoPairsDelete() -inoremap =AutoPairsMoveCharacter('''') -inoremap =AutoPairsMoveCharacter('"') -inoremap =AutoPairsMoveCharacter('}') -inoremap =AutoPairsMoveCharacter('{') -inoremap =AutoPairsMoveCharacter(']') -inoremap =AutoPairsMoveCharacter('[') -inoremap =AutoPairsMoveCharacter(')') -inoremap =AutoPairsMoveCharacter('(') -nmap ,hp (GitGutterPreviewHunk) -nmap ,hu (GitGutterUndoHunk) -nmap ,hs (GitGutterStageHunk) -xmap ,hs (GitGutterStageHunk) -inoremap § =AutoPairsMoveCharacter('''') -inoremap ¢ =AutoPairsMoveCharacter('"') -inoremap © =AutoPairsMoveCharacter(')') -inoremap ¨ =AutoPairsMoveCharacter('(') -inoremap î :call AutoPairsJump() a -inoremap ð AutoPairsToggle() -inoremap â =AutoPairsBackInsert() -inoremap ý =AutoPairsMoveCharacter('}') -inoremap û =AutoPairsMoveCharacter('{') -inoremap Ý =AutoPairsMoveCharacter(']') -inoremap Û =AutoPairsMoveCharacter('[') -nmap [c (GitGutterPrevHunk) -nmap ]c (GitGutterNextHunk) -xmap ac (GitGutterTextObjectOuterVisual) -omap ac (GitGutterTextObjectOuterPending) -xmap ic (GitGutterTextObjectInnerVisual) -omap ic (GitGutterTextObjectInnerPending) -noremap :call AutoPairsJump() -noremap :call AutoPairsToggle() -inoremap  =AutoPairsDelete() -inoremap  =AutoPairsFastWrap() -inoremap  =AutoPairsSpace() -inoremap " =AutoPairsInsert('"') -inoremap ' =AutoPairsInsert('''') -inoremap ( =AutoPairsInsert('(') -inoremap ) =AutoPairsInsert(')') -noremap î :call AutoPairsJump() -noremap ð :call AutoPairsToggle() -inoremap [ =AutoPairsInsert('[') -inoremap ] =AutoPairsInsert(']') -inoremap ` =AutoPairsInsert('`') -inoremap { =AutoPairsInsert('{') -inoremap } =AutoPairsInsert('}') -let &cpo=s:cpo_save -unlet s:cpo_save -setlocal autoindent -setlocal backupcopy= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden= -setlocal buflisted -setlocal buftype= -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,!^F,o,O,e -setlocal cinoptions= -setlocal cinwords=if,else,while,do,for,switch -set colorcolumn=80 -setlocal colorcolumn=80 -setlocal comments=b:#,fb:- -setlocal commentstring=#\ %s -setlocal complete=.,w,b,u,t,i -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal nocursorline -setlocal cursorlineopt=both -setlocal define= -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat= -setlocal expandtab -if &filetype != 'python' -setlocal filetype=python -endif -setlocal fixendofline -setlocal foldcolumn=0 -set nofoldenable -setlocal nofoldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -set foldmethod=indent -setlocal foldmethod=indent -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=tcq -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include=^\\s*\\(from\\|import\\) -setlocal includeexpr=substitute(substitute(substitute(v:fname,b:grandparent_match,b:grandparent_sub,''),b:parent_match,b:parent_sub,''),b:child_match,b:child_sub,'g') -setlocal indentexpr=GetPythonIndent(v:lnum) -setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e,<:>,=elif,=except -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255 -setlocal keywordprg=pydoc -setlocal nolinebreak -setlocal nolisp -setlocal lispwords= -setlocal nolist -setlocal makeencoding= -setlocal makeprg= -setlocal matchpairs=(:),{:},[:] -setlocal modeline -setlocal modifiable -setlocal nrformats=bin,octal,hex -set number -setlocal number -setlocal numberwidth=4 -setlocal omnifunc=pythoncomplete#Complete -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal noreadonly -setlocal norelativenumber -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -setlocal signcolumn=auto -setlocal nosmartindent -setlocal softtabstop=4 -set spell -setlocal spell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal statusline=%{lightline#link()}%#LightlineLeft_active_0#%(\ %{lightline#mode()}\ %)%{(&paste)?\"|\":\"\"}%(\ %{&paste?\"PASTE\":\"\"}\ %)%#LightlineLeft_active_0_1#%#LightlineLeft_active_1#%(\ %R\ %)%{(&readonly)&&(1||(&modified||!&modifiable))?\"|\":\"\"}%(\ %t\ %)%{(&modified||!&modifiable)?\"|\":\"\"}%(\ %M\ %)%#LightlineLeft_active_1_2#%#LightlineMiddle_active#%=%#LightlineRight_active_2_3#%#LightlineRight_active_2#%(\ %{&ff}\ %)%{1||1?\"|\":\"\"}%(\ %{&fenc!=#\"\"?&fenc:&enc}\ %)%{1?\"|\":\"\"}%(\ %{&ft!=#\"\"?&ft:\"no\ ft\"}\ %)%#LightlineRight_active_1_2#%#LightlineRight_active_1#%(\ %3p%%\ %)%#LightlineRight_active_0_1#%#LightlineRight_active_0#%(\ %3l:%-2c\ %) -setlocal suffixesadd=.py -setlocal noswapfile -setlocal synmaxcol=3000 -if &syntax != 'python' -setlocal syntax=python -endif -setlocal tabstop=8 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal noundofile -setlocal undolevels=-123456 -setlocal wincolor= -setlocal nowinfixheight -setlocal nowinfixwidth -set nowrap -setlocal nowrap -setlocal wrapmargin=0 -let s:l = 83 - ((21 * winheight(0) + 21) / 43) -if s:l < 1 | let s:l = 1 | endif -exe s:l -normal! zt -83 -normal! 05| -wincmd w -argglobal -if bufexists("gita/__main__.py") | buffer gita/__main__.py | else | edit gita/__main__.py | endif -let s:cpo_save=&cpo -set cpo&vim -inoremap :call AutoPairsJump() a -inoremap AutoPairsToggle() -inoremap =AutoPairsBackInsert() -inoremap =AutoPairsFastWrap() -inoremap =AutoPairsDelete() -inoremap =AutoPairsDelete() -inoremap =AutoPairsMoveCharacter('''') -inoremap =AutoPairsMoveCharacter('"') -inoremap =AutoPairsMoveCharacter('}') -inoremap =AutoPairsMoveCharacter('{') -inoremap =AutoPairsMoveCharacter(']') -inoremap =AutoPairsMoveCharacter('[') -inoremap =AutoPairsMoveCharacter(')') -inoremap =AutoPairsMoveCharacter('(') -nmap ,hp (GitGutterPreviewHunk) -nmap ,hu (GitGutterUndoHunk) -nmap ,hs (GitGutterStageHunk) -xmap ,hs (GitGutterStageHunk) -inoremap § =AutoPairsMoveCharacter('''') -inoremap ¢ =AutoPairsMoveCharacter('"') -inoremap © =AutoPairsMoveCharacter(')') -inoremap ¨ =AutoPairsMoveCharacter('(') -inoremap î :call AutoPairsJump() a -inoremap ð AutoPairsToggle() -inoremap â =AutoPairsBackInsert() -inoremap ý =AutoPairsMoveCharacter('}') -inoremap û =AutoPairsMoveCharacter('{') -inoremap Ý =AutoPairsMoveCharacter(']') -inoremap Û =AutoPairsMoveCharacter('[') -nmap [c (GitGutterPrevHunk) -nmap ]c (GitGutterNextHunk) -xmap ac (GitGutterTextObjectOuterVisual) -omap ac (GitGutterTextObjectOuterPending) -xmap ic (GitGutterTextObjectInnerVisual) -omap ic (GitGutterTextObjectInnerPending) -noremap :call AutoPairsJump() -noremap :call AutoPairsToggle() -inoremap  =AutoPairsDelete() -inoremap  =AutoPairsFastWrap() -inoremap  =AutoPairsSpace() -inoremap " =AutoPairsInsert('"') -inoremap ' =AutoPairsInsert('''') -inoremap ( =AutoPairsInsert('(') -inoremap ) =AutoPairsInsert(')') -noremap î :call AutoPairsJump() -noremap ð :call AutoPairsToggle() -inoremap [ =AutoPairsInsert('[') -inoremap ] =AutoPairsInsert(']') -inoremap ` =AutoPairsInsert('`') -inoremap { =AutoPairsInsert('{') -inoremap } =AutoPairsInsert('}') -let &cpo=s:cpo_save -unlet s:cpo_save -setlocal autoindent -setlocal backupcopy= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden= -setlocal buflisted -setlocal buftype= -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,!^F,o,O,e -setlocal cinoptions= -setlocal cinwords=if,else,while,do,for,switch -set colorcolumn=0 -setlocal colorcolumn=0 -setlocal comments=b:#,fb:- -setlocal commentstring=#\ %s -setlocal complete=.,w,b,u,t,i -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal nocursorline -setlocal cursorlineopt=both -setlocal define= -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat= -setlocal expandtab -if &filetype != 'python' -setlocal filetype=python -endif -setlocal fixendofline -setlocal foldcolumn=0 -set nofoldenable -setlocal nofoldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -set foldmethod=indent -setlocal foldmethod=indent -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=tcq -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include=^\\s*\\(from\\|import\\) -setlocal includeexpr=substitute(substitute(substitute(v:fname,b:grandparent_match,b:grandparent_sub,''),b:parent_match,b:parent_sub,''),b:child_match,b:child_sub,'g') -setlocal indentexpr=GetPythonIndent(v:lnum) -setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e,<:>,=elif,=except -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255 -setlocal keywordprg=pydoc -setlocal nolinebreak -setlocal nolisp -setlocal lispwords= -setlocal nolist -setlocal makeencoding= -setlocal makeprg= -setlocal matchpairs=(:),{:},[:] -setlocal modeline -setlocal modifiable -setlocal nrformats=bin,octal,hex -set number -setlocal number -setlocal numberwidth=4 -setlocal omnifunc=pythoncomplete#Complete -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal noreadonly -setlocal norelativenumber -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -setlocal signcolumn=auto -setlocal nosmartindent -setlocal softtabstop=4 -set spell -setlocal spell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal statusline=%{lightline#link()}%#LightlineLeft_inactive_0#%(\ %t\ %)%#LightlineLeft_inactive_0_1#%#LightlineMiddle_inactive#%=%#LightlineRight_inactive_1_2#%#LightlineRight_inactive_1#%(\ %3p%%\ %)%#LightlineRight_inactive_0_1#%#LightlineRight_inactive_0#%(\ %3l:%-2c\ %) -setlocal suffixesadd=.py -setlocal noswapfile -setlocal synmaxcol=3000 -if &syntax != 'python' -setlocal syntax=python -endif -setlocal tabstop=8 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal noundofile -setlocal undolevels=-123456 -setlocal wincolor= -setlocal nowinfixheight -setlocal nowinfixwidth -set nowrap -setlocal nowrap -setlocal wrapmargin=0 -let s:l = 34 - ((32 * winheight(0) + 21) / 43) -if s:l < 1 | let s:l = 1 | endif -exe s:l -normal! zt -34 -normal! 09| -wincmd w -exe 'vert 1resize ' . ((&columns * 94 + 94) / 188) -exe 'vert 2resize ' . ((&columns * 93 + 94) / 188) -tabnext -edit gita/common.py -set splitbelow splitright -set nosplitbelow -set nosplitright -wincmd t -set winminheight=0 -set winheight=1 -set winminwidth=0 -set winwidth=1 -argglobal -let s:cpo_save=&cpo -set cpo&vim -inoremap :call AutoPairsJump() a -inoremap AutoPairsToggle() -inoremap =AutoPairsBackInsert() -inoremap =AutoPairsFastWrap() -inoremap =AutoPairsDelete() -inoremap =AutoPairsDelete() -inoremap =AutoPairsMoveCharacter('''') -inoremap =AutoPairsMoveCharacter('"') -inoremap =AutoPairsMoveCharacter('}') -inoremap =AutoPairsMoveCharacter('{') -inoremap =AutoPairsMoveCharacter(']') -inoremap =AutoPairsMoveCharacter('[') -inoremap =AutoPairsMoveCharacter(')') -inoremap =AutoPairsMoveCharacter('(') -nmap ,hp (GitGutterPreviewHunk) -nmap ,hu (GitGutterUndoHunk) -nmap ,hs (GitGutterStageHunk) -xmap ,hs (GitGutterStageHunk) -inoremap § =AutoPairsMoveCharacter('''') -inoremap ¢ =AutoPairsMoveCharacter('"') -inoremap © =AutoPairsMoveCharacter(')') -inoremap ¨ =AutoPairsMoveCharacter('(') -inoremap î :call AutoPairsJump() a -inoremap ð AutoPairsToggle() -inoremap â =AutoPairsBackInsert() -inoremap ý =AutoPairsMoveCharacter('}') -inoremap û =AutoPairsMoveCharacter('{') -inoremap Ý =AutoPairsMoveCharacter(']') -inoremap Û =AutoPairsMoveCharacter('[') -nmap [c (GitGutterPrevHunk) -nmap ]c (GitGutterNextHunk) -xmap ac (GitGutterTextObjectOuterVisual) -omap ac (GitGutterTextObjectOuterPending) -xmap ic (GitGutterTextObjectInnerVisual) -omap ic (GitGutterTextObjectInnerPending) -noremap :call AutoPairsJump() -noremap :call AutoPairsToggle() -inoremap  =AutoPairsDelete() -inoremap  =AutoPairsFastWrap() -inoremap  =AutoPairsSpace() -inoremap " =AutoPairsInsert('"') -inoremap ' =AutoPairsInsert('''') -inoremap ( =AutoPairsInsert('(') -inoremap ) =AutoPairsInsert(')') -noremap î :call AutoPairsJump() -noremap ð :call AutoPairsToggle() -inoremap [ =AutoPairsInsert('[') -inoremap ] =AutoPairsInsert(']') -inoremap ` =AutoPairsInsert('`') -inoremap { =AutoPairsInsert('{') -inoremap } =AutoPairsInsert('}') -let &cpo=s:cpo_save -unlet s:cpo_save -setlocal autoindent -setlocal backupcopy= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden= -setlocal buflisted -setlocal buftype= -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,!^F,o,O,e -setlocal cinoptions= -setlocal cinwords=if,else,while,do,for,switch -set colorcolumn=0 -setlocal colorcolumn=0 -setlocal comments=b:#,fb:- -setlocal commentstring=#\ %s -setlocal complete=.,w,b,u,t,i -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal nocursorline -setlocal cursorlineopt=both -setlocal define= -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat= -setlocal expandtab -if &filetype != 'python' -setlocal filetype=python -endif -setlocal fixendofline -setlocal foldcolumn=0 -set nofoldenable -setlocal nofoldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -set foldmethod=indent -setlocal foldmethod=indent -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=tcq -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include=^\\s*\\(from\\|import\\) -setlocal includeexpr=substitute(substitute(substitute(v:fname,b:grandparent_match,b:grandparent_sub,''),b:parent_match,b:parent_sub,''),b:child_match,b:child_sub,'g') -setlocal indentexpr=GetPythonIndent(v:lnum) -setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e,<:>,=elif,=except -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255 -setlocal keywordprg=pydoc -setlocal nolinebreak -setlocal nolisp -setlocal lispwords= -setlocal nolist -setlocal makeencoding= -setlocal makeprg= -setlocal matchpairs=(:),{:},[:] -setlocal modeline -setlocal modifiable -setlocal nrformats=bin,octal,hex -set number -setlocal number -setlocal numberwidth=4 -setlocal omnifunc=pythoncomplete#Complete -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal noreadonly -setlocal norelativenumber -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -setlocal signcolumn=auto -setlocal nosmartindent -setlocal softtabstop=4 -set spell -setlocal spell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal statusline=%{lightline#link()}%#LightlineLeft_active_0#%(\ %{lightline#mode()}\ %)%{(&paste)?\"|\":\"\"}%(\ %{&paste?\"PASTE\":\"\"}\ %)%#LightlineLeft_active_0_1#%#LightlineLeft_active_1#%(\ %R\ %)%{(&readonly)&&(1||(&modified||!&modifiable))?\"|\":\"\"}%(\ %t\ %)%{(&modified||!&modifiable)?\"|\":\"\"}%(\ %M\ %)%#LightlineLeft_active_1_2#%#LightlineMiddle_active#%=%#LightlineRight_active_2_3#%#LightlineRight_active_2#%(\ %{&ff}\ %)%{1||1?\"|\":\"\"}%(\ %{&fenc!=#\"\"?&fenc:&enc}\ %)%{1?\"|\":\"\"}%(\ %{&ft!=#\"\"?&ft:\"no\ ft\"}\ %)%#LightlineRight_active_1_2#%#LightlineRight_active_1#%(\ %3p%%\ %)%#LightlineRight_active_0_1#%#LightlineRight_active_0#%(\ %3l:%-2c\ %) -setlocal suffixesadd=.py -setlocal noswapfile -setlocal synmaxcol=3000 -if &syntax != 'python' -setlocal syntax=python -endif -setlocal tabstop=8 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal noundofile -setlocal undolevels=-123456 -setlocal wincolor= -setlocal nowinfixheight -setlocal nowinfixwidth -set nowrap -setlocal nowrap -setlocal wrapmargin=0 -let s:l = 2 - ((1 * winheight(0) + 21) / 43) -if s:l < 1 | let s:l = 1 | endif -exe s:l -normal! zt -2 -normal! 0 -tabnext 1 -set stal=1 -badd +34 gita/__main__.py -badd +0 gita/utils.py -badd +0 gita/common.py -if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 - silent exe 'bwipe ' . s:wipebuf -endif -unlet! s:wipebuf -set winheight=1 winwidth=20 shortmess=filnxtToOS -set winminheight=1 winminwidth=1 -let s:sx = expand(":p:r")."x.vim" -if filereadable(s:sx) - exe "source " . fnameescape(s:sx) -endif -let &so = s:so_save | let &siso = s:siso_save -nohlsearch -doautoall SessionLoadPost -unlet SessionLoad -" vim: set ft=vim :