reconquest / vim-autosurround

Automatically insert pairs (brackets, quotes) where they are supposed to be
54 stars 2 forks source link

Nvim + golang #1

Closed pik4ez closed 7 years ago

pik4ez commented 7 years ago

There's some problem in nvim.

Reproduce:

  1. Create new file main.go.
  2. Start typing "func main(".

Result:

Error detected while processing function AutoSurround..provider#python#Call:
line   18:
TypeError("unhashable type: 'list'",)
Traceback (most recent call last):

  File "/usr/local/lib/python2.7/site-packages/neovim/msgpack_rpc/session.py", line 177, in handler
    rv = self._request_cb(name, args)
  File "/usr/local/lib/python2.7/site-packages/neovim/api/common.py", line 237, in filter_request_cb
    walk(self._in, args, self, name, 'request'))
  File "/usr/local/lib/python2.7/site-packages/neovim/plugin/host.py", line 65, in _on_request
    rv = handler(*args)
  File "/usr/local/Cellar/neovim/HEAD/share/nvim/runtime/autoload/provider/script_host.py", line 147, in python_eval
    return eval(expr, self.module.__dict__)
  File "<string>", line 1, in <module>
TypeError: unhashable type: 'list'

Nvim version:

NVIM 0.0.0-alpha+201510011537 (compiled Oct  1 2015 23:35:29)
Commit: 536c0ba27e79929eb30850d8e11f2ed026930ab3
Build type: RelWithDebInfo
Compilation: /usr/local/Library/ENV/4.3/clang -Wconversion -O2 -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -Wvla -std=gnu99 -fstack-protector-strong -fdiagnostics-color=auto -DINC
LUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -I/tmp/neovim20151001-45440-1mb22t4/build/config -I/tmp/neovim20151001-45440-1mb22t4/src -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include -I/tmp/neovi
m20151001-45440-1mb22t4/deps-build/usr/include -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include/luajit-2.0 -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include -I/tmp/neovim20151001-45440-
1mb22t4/deps-build/usr/include -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include -I/usr/local/opt/gettext/include -I/usr/include -I/tmp/
neovim20151001-45440-1mb22t4/build/src/nvim/auto -I/tmp/neovim20151001-45440-1mb22t4/build/include
Compiled by tt4@Dmitrys-MacBook-Pro.local

Optional features included (+) or not (-): +acl   +iconv    +jemalloc
For differences from Vim, see :help vim-differences

   system vimrc file: "$VIM/nvimrc"
     user vimrc file: "~/.nvimrc"
 2nd user vimrc file: "~/.nvim/nvimrc"
      user exrc file: "~/.exrc"
  fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD/share/nvim"

Config .nvimrc:

set nocompatible
set hidden
set expandtab
let mapleader = "\<space>"

" plugin manager (vim-plug)
if empty(glob('~/.nvim/autoload/plug.vim'))
    silent !mkdir -p ~/.nvim/autoload
    silent !curl -fLo ~/.nvim/autoload/plug.vim
                \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    autocmd VimEnter * PlugInstall
endif
call plug#begin('~/.nvim/bundle')

" custom plugins
Plug 'L9'
Plug 'pik4ez/vim-colors-solarized'
Plug 'vim-airline/vim-airline-themes'
Plug 'tpope/vim-unimpaired'
"Plug 'tpope/vim-surround'
Plug 'tpope/vim-repeat'
Plug 'edsono/vim-matchit', { 'for': 'html' }
Plug 'scrooloose/nerdcommenter'
Plug 'mattn/emmet-vim'
Plug 'Shougo/unite.vim'
Plug 'Shougo/vimproc', { 'do': 'make' }
Plug 'yuku-t/unite-git'
Plug 'sickill/vim-pasta'
Plug 'bling/vim-airline'
Plug 'Valloric/YouCompleteMe'
Plug 'SirVer/ultisnips'
Plug 'kana/vim-smartinput'
Plug 'kovetskiy/ash.vim'
Plug 'seletskiy/vim-pythonx'
Plug 'maksimr/vim-jsbeautify'
Plug 'kovetskiy/next-indentation'
Plug 'benekastah/neomake'

" Rust plugins
Plug 'rust-lang/rust.vim'

" 1. cd racer; cargo build --release
" 2. Set the RUST_SRC_PATH env variable to point to the 'src' dir in
"    your rust source installation
"    (e.g. % export RUST_SRC_PATH=/usr/local/src/rust/src )
" 3. Test on the command line:
"    ./target/release/racer complete std::io::B (should show some completions)
Plug 'phildawes/racer'

" Go support.
Plug 'fatih/vim-go'

" vim-go settings
let g:go_fmt_command = "goimports"

" xkb-switch required
" see https://github.com/ierton/xkb-switch
" after installation, set chmod +x /usr/local/lib/libxkbswitch.so
Plug 'lyokha/vim-xkbswitch'

Plug 'seletskiy/vim-autosurround'
inoremap  ( (<C-O>:call AutoSurround(")")<CR>

call plug#end()

" gui font for mac
set guifont=Monaco\ for\ Powerline:h12

set tags=./tags;,tags;

" racer settings (rust completion)
let g:racer_cmd = $HOME."/.nvim/bundle/racer/target/release/racer"
let $RUST_SRC_PATH=$HOME."/rust/rustlang-src/src/"

" unite settings
let g:unite_source_history_yank_enable = 1
let g:unite_source_history_yank_file = $HOME.'/.nvim/yankring.txt'
let g:unite_source_grep_command = 'pt'
let g:unite_source_grep_default_opts = '--nocolor --nogroup'
let g:unite_source_grep_recursive_opt = ''
let g:unite_source_grep_encoding = 'utf-8'
let g:unite_source_grep_max_candidates = 200

call unite#custom#source(
\ 'file,file/new,buffer,file_rec,file_rec/async,git_cached,git_untracked',
\ 'matchers', 'matcher_fuzzy'
\ )
call unite#custom#source(
\ 'file,file/new,buffer,file_rec,file_rec/async,git_cached,git_untracked',
\ 'ignore_pattern', '\<nodejs\>\|\<node_modules\>'
\ )
call unite#custom#profile('default', 'context', {
\   'start_insert': 1,
\   'direction': 'botright',
\ })
call unite#filters#sorter_default#use(['sorter_selecta'])
nmap <Leader>j :Unite -hide-source-names git_cached git_untracked buffer<CR>
nmap <Leader>b :Unite buffer<CR>
nmap <Leader>a :Unite ash_inbox<CR>
nmap <Leader>r :UniteResume<CR>
function! s:unite_my_settings()
    call unite#custom#alias('ash_review', 'split', 'ls')
    imap <silent><buffer><expr> <C-P> unite#do_action('split')
    imap <buffer> <C-J> <Plug>(unite_select_next_line)
    imap <buffer> <C-K> <Plug>(unite_select_previous_line)
endfunction

" surround settings
"let g:surround_45 = "\1function: \1(\r)"

" next-indentation settings
nnoremap { :IndentationGoUp<CR>
nnoremap } :IndentationGoDown<CR>

" ultisnips settings
let g:UltiSnipsSnippetsDir = "~/.nvim/ultisnips"
let g:UltiSnipsSnippetDirectories = ["ultisnips"]
let g:UltiSnipsEditSplit = 'horizontal'
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<tab>"
let g:UltiSnipsJumpBackwardTrigger="<s-tab>"

" youcompleteme settings
let g:ycm_key_list_select_completion = ['<c-n>']
let g:ycm_key_list_previous_completion = ['<c-p>']
let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_collect_identifiers_from_comments_and_strings = 1
let g:ycm_seed_identifiers_with_syntax = 1

" disable scratch preview
set completeopt-=preview

" airline settings
set laststatus=2
let g:airline_theme='solarized'
let g:airline_solarized_reduced = 0
let g:airline_powerline_fonts=1
let g:airline#extensions#whitespace#symbol = '‚òº'
let g:airline#extensions#syntastic#enabled = 1
function! AirlineFixLength(...)
    let w:airline_section_z = airline#section#create(['%3p%%', 'linenr', '%3v'])
endfunction
call airline#remove_statusline_func('AirlineFixLength')
call airline#add_statusline_func('AirlineFixLength')

" syntastic settings
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_python_checkers = ['flake8']

" xkb-switch settings
let g:XkbSwitchEnabled = 1
let g:XkbSwitchIMappings = ['ru']

" ash settings
" don't ignore whitespaces
let g:ash_review_file_flags=''

set showtabline=0
set tabstop=4
set sw=4

set background=light
set t_Co=256
colorscheme solarized

" Directories for backup and swap files
set backupdir=~/tmp/vim,~/tmp,/var/tmp,/tmp
set directory=~/tmp/vim,~/tmp,/var/tmp,/tmp

" line numbers
set rnu

" wild menu
set wildmenu

" hidden symbols
set list
set listchars=eol:¶,extends:»,tab:│·,trail:·"
let g:solarized_visibility="low"
let g:solarized_contrast="normal"
let g:solarized_termcolors=256
let g:solarized_italic=0

" disable visual bells
set vb

" press F2 to paste without indent magick
set pastetoggle=<F2>

" mappings
nmap <Leader>w :w<CR>
nmap <Leader>d :bd<CR>
nmap gt :bn<CR>
nmap gT :bp<CR>
inoremap <C-j> <Esc>
inoremap <C-t> <C-o>:call search("[)}\"'`\\]]", 'c')<CR><Right>
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> :left<CR>
nnoremap <silent> <Space><Space> :nohlsearch<CR>
cnoremap w!! w !sudo tee % >/dev/null
nnoremap <Leader>c :e $MYVIMRC<CR>
noremap <F8> :bufdo bdelete<CR>
nmap <Leader>u :UltiSnipsEdit<CR>
vmap <Leader>` y:UltiSnipsEdit<CR>Go<CR>snippet HERE<CR>endsnippet<ESC>k]p?HERE<CR>zzciw

" cd to work dirs
command! Wa cd ~/work/avito
command! Was cd ~/work/avito-segm
command! Wav cd ~/work/avito-vagrant
command! Wspa cd ~/work/service-product-ads
command! Wspac cd ~/work/service-product-ads-client
command! Wscm cd ~/work/service-category-mapper
command! Wscmc cd ~/work/service-category-mapper-client
command! Wau cd ~/work/avito-utils
command! Waus cd ~/work/avito-utils-sphinx
command! Wspi cd ~/work/service-phone-info

" Copy current file path to * buffer
nmap <F4> :let @* = expand("%")<CR>

" Ctrl-U converts previous word to upper case
inoremap <C-u> <ESC>viwgUea

" F9 opens encoding menu
set wcm=<Tab>
menu Encoding.windows-1251 :e ++enc=cp1251 ++ff=dos<CR>
menu Encoding.utf-8 :e ++enc=utf8<CR>
map <F9> :emenu Encoding.<TAB>

" Ctrl-N breaks line in place of cursor
" Ctrl-M breaks line in place of cursor and jumps to the next space
" TODO remove space character under cursor before line breaking
" TODO create smart mapping to break arguments list inside function definition
nnoremap <C-n> i<CR><Esc>k$
nnoremap <C-m> i<CR><Esc>f<space>

" switch to previously selected buffer
nnoremap gl :b#<CR>

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

set history=50 " keep 50 lines of command line history
set ruler      " show the cursor position all the time
set showcmd    " display incomplete commands
set incsearch  " do incremental searching

" Don't use Ex mode, use Q for formatting
noremap Q gq

" In many terminal emulators the mouse works just fine, thus enable it.
if has('mouse')
    set mouse=a
endif

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
    syntax on
    set hlsearch
endif

set autoindent

" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
"filetype plugin indent on
filetype indent on
filetype on
filetype plugin on

augroup vimrcEx
    au!

    " For all text files set 'textwidth' to 120 characters.
    autocmd FileType text setlocal textwidth=120

    " When editing a file, always jump to the last known cursor position.
    " Don't do it when the position is invalid or when inside an event handler
    " (happens when dropping a file on gvim).
    " Also don't do it when the mark is in the first line, that is the default
    " position when opening a file.
    autocmd BufReadPost *
                \ if line("'\"") > 1 && line("'\"") <= line("$") |
                \ exe "normal! g`\"" |
                \ endif
augroup END

augroup confluence
        au!
        au BufRead /tmp/vimperator-confluence* set ft=html.confluence | :call HtmlBeautify()<CR>
        au BufRead /tmp/vimperator-confluence* map <buffer> <Leader>t :%s/\v[\ \t\n]+\<p\>([\ \t\n]+\<br\>)?[\ \t\n]+\<\/p\>/<CR>
augroup end

augroup erlang
    au!
    autocmd FileType erlang setlocal ts=4 sts=4 sw=4 noet
augroup END

augroup php
    au!
    autocmd FileType php setlocal colorcolumn=80,120
augroup END

augroup html
    au!
    autocmd FileType html setlocal et
augroup END

augroup go
    au!
    autocmd FileType go setlocal noet
    autocmd FileType go setlocal colorcolumn=80,120
augroup END

augroup python
    au!
    autocmd FileType python setlocal colorcolumn=79,120
augroup END

augroup sh
    au!
    autocmd FileType sh setlocal colorcolumn=80
augroup END

augroup c
    au!
    autocmd FileType c setlocal colorcolumn=80
augroup END

augroup unite_setting
    au!
    au FileType unite call s:unite_my_settings()
augroup end

" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" Only define it when not defined already.
if !exists(":DiffOrig")
    command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
endif

" Auto reload vimrc on change
augroup vimrc
    au!
    au BufWritePost ~/.nvimrc source % | AirlineRefresh
augroup end

" Neomake settings
autocmd! BufWritePost * Neomake

" Make pizdato
nnoremap <Leader>m :call TryToReduce()<CR>
function! TryToReduce()
    let startLine = line(".")
    let content = getline(startLine)
    let content = substitute(content, "[,\(]", "&\r", "g")
    let content = substitute(content, "[\)]", "\r&", "g")
    let content = substitute(content, "\(\r\r\)", "()", "g")
    let content = substitute(content, "\rarray\r", "array", "g")
    execute 'normal S'
    execute 'normal i' . content
    let currentLine = line(".")
    let cow = currentLine - startLine + 2
    execute 'normal ' . (startLine - 1) . 'gg'
    execute 'normal ' . cow . '=='
    execute 'normal ' . startLine . 'gg^'
endfunction
seletskiy commented 7 years ago

Не использую nvim, не нашёл в нём ничего нужного мне.

On Wed, Nov 2, 2016 at 4:05 PM, pik4ez notifications@github.com wrote:

There's some problem in nvim.

Reproduce:

  1. Create new file main.go.
  2. Start typing "func main(".

Result:

Error detected while processing function AutoSurround..provider#python#Call: line 18: TypeError("unhashable type: 'list'",) Traceback (most recent call last):

File "/usr/local/lib/python2.7/site-packages/neovim/msgpack_rpc/session.py", line 177, in handler rv = self._request_cb(name, args) File "/usr/local/lib/python2.7/site-packages/neovim/api/common.py", line 237, in filter_request_cb walk(self._in, args, self, name, 'request')) File "/usr/local/lib/python2.7/site-packages/neovim/plugin/host.py", line 65, in _on_request rv = handler(*args) File "/usr/local/Cellar/neovim/HEAD/share/nvim/runtime/autoload/provider/script_host.py", line 147, in python_eval return eval(expr, self.module.dict) File "", line 1, in TypeError: unhashable type: 'list'

Nvim version:

NVIM 0.0.0-alpha+201510011537 (compiled Oct 1 2015 23:35:29) Commit: 536c0ba27e79929eb30850d8e11f2ed026930ab3 Build type: RelWithDebInfo Compilation: /usr/local/Library/ENV/4.3/clang -Wconversion -O2 -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -Wvla -std=gnu99 -fstack-protector-strong -fdiagnostics-color=auto -DINC LUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -I/tmp/neovim20151001-45440-1mb22t4/build/config -I/tmp/neovim20151001-45440-1mb22t4/src -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include -I/tmp/neovi m20151001-45440-1mb22t4/deps-build/usr/include -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include/luajit-2.0 -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include -I/tmp/neovim20151001-45440- 1mb22t4/deps-build/usr/include -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include -I/tmp/neovim20151001-45440-1mb22t4/deps-build/usr/include -I/usr/local/opt/gettext/include -I/usr/include -I/tmp/ neovim20151001-45440-1mb22t4/build/src/nvim/auto -I/tmp/neovim20151001-45440-1mb22t4/build/include Compiled by tt4@Dmitrys-MacBook-Pro.local

Optional features included (+) or not (-): +acl +iconv +jemalloc For differences from Vim, see :help vim-differences

system vimrc file: "$VIM/nvimrc" user vimrc file: "~/.nvimrc" 2nd user vimrc file: "~/.nvim/nvimrc" user exrc file: "~/.exrc" fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD/share/nvim"

Config .nvimrc:

set nocompatible set hidden set expandtab let mapleader = ""

" plugin manager (vim-plug) if empty(glob('~/.nvim/autoload/plug.vim')) silent !mkdir -p ~/.nvim/autoload silent !curl -fLo ~/.nvim/autoload/plug.vim \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall endif call plug#begin('~/.nvim/bundle')

" custom plugins Plug 'L9' Plug 'pik4ez/vim-colors-solarized' Plug 'vim-airline/vim-airline-themes' Plug 'tpope/vim-unimpaired' "Plug 'tpope/vim-surround' Plug 'tpope/vim-repeat' Plug 'edsono/vim-matchit', { 'for': 'html' } Plug 'scrooloose/nerdcommenter' Plug 'mattn/emmet-vim' Plug 'Shougo/unite.vim' Plug 'Shougo/vimproc', { 'do': 'make' } Plug 'yuku-t/unite-git' Plug 'sickill/vim-pasta' Plug 'bling/vim-airline' Plug 'Valloric/YouCompleteMe' Plug 'SirVer/ultisnips' Plug 'kana/vim-smartinput' Plug 'kovetskiy/ash.vim' Plug 'seletskiy/vim-pythonx' Plug 'maksimr/vim-jsbeautify' Plug 'kovetskiy/next-indentation' Plug 'benekastah/neomake'

" Rust plugins Plug 'rust-lang/rust.vim'

" 1. cd racer; cargo build --release " 2. Set the RUST_SRC_PATH env variable to point to the 'src' dir in " your rust source installation " (e.g. % export RUST_SRC_PATH=/usr/local/src/rust/src ) " 3. Test on the command line: " ./target/release/racer complete std::io::B (should show some completions) Plug 'phildawes/racer'

" Go support. Plug 'fatih/vim-go'

" vim-go settings let g:go_fmt_command = "goimports"

" xkb-switch required " see https://github.com/ierton/xkb-switch " after installation, set chmod +x /usr/local/lib/libxkbswitch.so Plug 'lyokha/vim-xkbswitch'

Plug 'seletskiy/vim-autosurround' inoremap ( (:call AutoSurround(")")

call plug#end()

" gui font for mac set guifont=Monaco\ for\ Powerline:h12

set tags=./tags;,tags;

" racer settings (rust completion) let g:racer_cmd = $HOME."/.nvim/bundle/racer/target/release/racer" let $RUST_SRC_PATH=$HOME."/rust/rustlang-src/src/"

" unite settings let g:unite_source_history_yank_enable = 1 let g:unite_source_history_yank_file = $HOME.'/.nvim/yankring.txt' let g:unite_source_grep_command = 'pt' let g:unite_source_grep_default_opts = '--nocolor --nogroup' let g:unite_source_grep_recursive_opt = '' let g:unite_source_grep_encoding = 'utf-8' let g:unite_source_grep_max_candidates = 200

call unite#custom#source( \ 'file,file/new,buffer,file_rec,file_rec/async,git_cached,git_untracked', \ 'matchers', 'matcher_fuzzy' \ ) call unite#custom#source( \ 'file,file/new,buffer,file_rec,file_rec/async,git_cached,git_untracked', \ 'ignore_pattern', '|' \ ) call unite#custom#profile('default', 'context', { \ 'start_insert': 1, \ 'direction': 'botright', \ }) call unite#filters#sorter_default#use(['sorter_selecta']) nmap j :Unite -hide-source-names git_cached git_untracked buffer nmap b :Unite buffer nmap a :Unite ash_inbox nmap r :UniteResume function! s:unite_my_settings() call unite#custom#alias('ash_review', 'split', 'ls') imap unite#do_action('split') imap (unite_select_next_line) imap (unite_select_previous_line) endfunction

" surround settings "let g:surround_45 = "\1function: \1(\r)"

" next-indentation settings nnoremap { :IndentationGoUp nnoremap } :IndentationGoDown

" ultisnips settings let g:UltiSnipsSnippetsDir = "~/.nvim/ultisnips" let g:UltiSnipsSnippetDirectories = ["ultisnips"] let g:UltiSnipsEditSplit = 'horizontal' let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger=""

" youcompleteme settings let g:ycm_key_list_select_completion = [''] let g:ycm_key_list_previous_completion = [''] let g:ycm_collect_identifiers_from_tags_files = 1 let g:ycm_collect_identifiers_from_comments_and_strings = 1 let g:ycm_seed_identifiers_with_syntax = 1

" disable scratch preview set completeopt-=preview

" airline settings set laststatus=2 let g:airline_theme='solarized' let g:airline_solarized_reduced = 0 let g:airline_powerline_fonts=1 let g:airline#extensions#whitespace#symbol = '‚òº' let g:airline#extensions#syntastic#enabled = 1 function! AirlineFixLength(...) let w:airline_section_z = airline#section#create(['%3p%%', 'linenr', '%3v']) endfunction call airline#remove_statusline_func('AirlineFixLength') call airline#add_statusline_func('AirlineFixLength')

" syntastic settings let g:syntastic_always_populate_loc_list = 1 let g:syntastic_python_checkers = ['flake8']

" xkb-switch settings let g:XkbSwitchEnabled = 1 let g:XkbSwitchIMappings = ['ru']

" ash settings " don't ignore whitespaces let g:ash_review_file_flags=''

set showtabline=0 set tabstop=4 set sw=4

set background=light set t_Co=256 colorscheme solarized

" Directories for backup and swap files set backupdir=~/tmp/vim,~/tmp,/var/tmp,/tmp set directory=~/tmp/vim,~/tmp,/var/tmp,/tmp

" line numbers set rnu

" wild menu set wildmenu

" hidden symbols set list set listchars=eol:¶,extends:»,tab:│·,trail:·" let g:solarized_visibility="low" let g:solarized_contrast="normal" let g:solarized_termcolors=256 let g:solarized_italic=0

" disable visual bells set vb

" press F2 to paste without indent magick set pastetoggle=

" mappings nmap w :w nmap d :bd nmap gt :bn nmap gT :bp inoremap inoremap :call search("[)}\"'\\]]", 'c')<CR><Right> nnoremap <C-j> <C-w>j nnoremap <C-k> <C-w>k nnoremap <C-l> :left<CR> nnoremap <silent> <Space><Space> :nohlsearch<CR> cnoremap w!! w !sudo tee % >/dev/null nnoremap <Leader>c :e $MYVIMRC<CR> noremap <F8> :bufdo bdelete<CR> nmap <Leader>u :UltiSnipsEdit<CR> vmap <Leader> y:UltiSnipsEditGosnippet HEREendsnippetk]p?HEREzzciw

" cd to work dirs command! Wa cd ~/work/avito command! Was cd ~/work/avito-segm command! Wav cd ~/work/avito-vagrant command! Wspa cd ~/work/service-product-ads command! Wspac cd ~/work/service-product-ads-client command! Wscm cd ~/work/service-category-mapper command! Wscmc cd ~/work/service-category-mapper-client command! Wau cd ~/work/avito-utils command! Waus cd ~/work/avito-utils-sphinx command! Wspi cd ~/work/service-phone-info

" Copy current file path to * buffer nmap :let @* = expand("%")

" Ctrl-U converts previous word to upper case inoremap viwgUea

" F9 opens encoding menu set wcm= menu Encoding.windows-1251 :e ++enc=cp1251 ++ff=dos menu Encoding.utf-8 :e ++enc=utf8 map :emenu Encoding.

" Ctrl-N breaks line in place of cursor " Ctrl-M breaks line in place of cursor and jumps to the next space " TODO remove space character under cursor before line breaking " TODO create smart mapping to break arguments list inside function definition nnoremap ik$ nnoremap if

" switch to previously selected buffer nnoremap gl :b#

" allow backspacing over everything in insert mode set backspace=indent,eol,start

set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set showcmd " display incomplete commands set incsearch " do incremental searching

" Don't use Ex mode, use Q for formatting noremap Q gq

" In many terminal emulators the mouse works just fine, thus enable it. if has('mouse') set mouse=a endif

" Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif

set autoindent

" Enable file type detection. " Use the default filetype settings, so that mail gets 'tw' set to 72, " 'cindent' is on in C files, etc. " Also load indent files, to automatically do language-dependent indenting. "filetype plugin indent on filetype indent on filetype on filetype plugin on

augroup vimrcEx au!

" For all text files set 'textwidth' to 120 characters.
autocmd FileType text setlocal textwidth=120

" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
" Also don't do it when the mark is in the first line, that is the default
" position when opening a file.
autocmd BufReadPost *
            \ if line("'\"") > 1 && line("'\"") <= line("$") |
            \ exe "normal! g`\"" |
            \ endif

augroup END

augroup confluence au! au BufRead /tmp/vimperator-confluence* set ft=html.confluence | :call HtmlBeautify() au BufRead /tmp/vimperator-confluence* map t :%s/\v[\ \t\n]+

([\ \t\n]+
)?[\ \t\n]+<\/p>/ augroup end

augroup erlang au! autocmd FileType erlang setlocal ts=4 sts=4 sw=4 noet augroup END

augroup php au! autocmd FileType php setlocal colorcolumn=80,120 augroup END

augroup html au! autocmd FileType html setlocal et augroup END

augroup go au! autocmd FileType go setlocal noet autocmd FileType go setlocal colorcolumn=80,120 augroup END

augroup python au! autocmd FileType python setlocal colorcolumn=79,120 augroup END

augroup sh au! autocmd FileType sh setlocal colorcolumn=80 augroup END

augroup c au! autocmd FileType c setlocal colorcolumn=80 augroup END

augroup unite_setting au! au FileType unite call s:unite_my_settings() augroup end

" Convenient command to see the difference between the current buffer and the " file it was loaded from, thus the changes you made. " Only define it when not defined already. if !exists(":DiffOrig") command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis endif

" Auto reload vimrc on change augroup vimrc au! au BufWritePost ~/.nvimrc source % | AirlineRefresh augroup end

" Neomake settings autocmd! BufWritePost * Neomake

" Make pizdato nnoremap m :call TryToReduce() function! TryToReduce() let startLine = line(".") let content = getline(startLine) let content = substitute(content, "[,(]", "&\r", "g") let content = substitute(content, "[)]", "\r&", "g") let content = substitute(content, "(\r\r)", "()", "g") let content = substitute(content, "\rarray\r", "array", "g") execute 'normal S' execute 'normal i' . content let currentLine = line(".") let cow = currentLine - startLine + 2 execute 'normal ' . (startLine - 1) . 'gg' execute 'normal ' . cow . '==' execute 'normal ' . startLine . 'gg^' endfunction

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/seletskiy/vim-autosurround/issues/1, or mute the thread https://github.com/notifications/unsubscribe-auth/AApL_CkR_S5K5wAhsTToFIeKrjWTryxfks5q6FJ3gaJpZM4Km_7P .

Stanislav Seletskiy

kovetskiy commented 7 years ago

@pik4ez pull-requests are welcome

with love