Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vim-surroundについて #533

Closed
InoueReo0406 opened this issue Mar 3, 2014 · 11 comments
Closed

vim-surroundについて #533

InoueReo0406 opened this issue Mar 3, 2014 · 11 comments

Comments

@InoueReo0406
Copy link

vim-surroundが上手く機能せず、なにかのプラグインと混同しているみたいです。このような場合、みなさんはどのように原因を調べていますか。
また自分のvimrcを記しておきます。整形?の仕方なども教えていただくと幸いです。

"=============================================================================
"    Description: .vimrcサンプル設定
"         Author: anonymous
"  Last Modified: 0000-00-00 00:00
"        Version: 7.40
"=============================================================================
set nocompatible
scriptencoding utf-8
" scriptencodingと、このファイルのエンコーディングが一致するよう注意!
" scriptencodingは、vimの内部エンコーディングと同じものを推奨します。
" 改行コードは set fileformat=unix に設定するとunixでも使えます。
" 文字コードの自動解釈の優先順位
set fileencodings=utf-8,cp932,euc-jp
" 内部の解釈の文字コード 設定ファイルもこのコードで書け
set encoding=utf-8

" Windowsで内部エンコーディングを cp932以外にしていて、
" 環境変数に日本語を含む値を設定したい場合は Let を使用します。
" Letは vimrc(オールインワンパッケージの場合)と encode.vim で定義されます。
" Let $HOGE=$USERPROFILE.'/ほげ'

"----------------------------------------
" ユーザーランタイムパス設定
"----------------------------------------
" Windows, unixでのruntimepathの違いを吸収するためのもの。
" $MY_VIMRUNTIMEはユーザーランタイムディレクトリを示す。
" :echo $MY_VIMRUNTIMEで実際のパスを確認できます。
if isdirectory($HOME . '/.vim')
  let $MY_VIMRUNTIME = $HOME.'/.vim'
elseif isdirectory($HOME . '\vimfiles')
  let $MY_VIMRUNTIME = $HOME.'\vimfiles'
elseif isdirectory($VIM . '\vimfiles')
  let $MY_VIMRUNTIME = $VIM.'\vimfiles'
endif

" ランタイムパスを通す必要のあるプラグインを使用する場合、
" $MY_VIMRUNTIMEを使用すると Windows/Linuxで切り分ける必要が無くなります。
" 例) vimfiles/qfixapp (Linuxでは~/.vim/qfixapp)にランタイムパスを通す場合
" set runtimepath+=$MY_VIMRUNTIME/qfixapp

"----------------------------------------
" 内部エンコーディング指定
"----------------------------------------
" 内部エンコーディングのUTF-8化と文字コードの自動認識設定をencode.vimで行う。
" オールインワンパッケージの場合 vimrcで設定されます。
" エンコーディング指定や文字コードの自動認識設定が適切に設定されている場合、
" 次行の encode.vim読込部分はコメントアウトして下さい。
" silent! source $MY_VIMRUNTIME/pluginjp/encode.vim
" scriptencodingと異なる内部エンコーディングに変更する場合、
" 変更後にもscriptencodingを指定しておくと問題が起きにくくなります。
" scriptencoding cp932

"----------------------------------------
" システム設定
"----------------------------------------
" mswin.vimを読み込む
" source $VIMRUNTIME/mswin.vim
" behave mswin

" ファイルの上書きの前にバックアップを作る/作らない
" set writebackupを指定してもオプション 'backup' がオンでない限り、
" バックアップは上書きに成功した後に削除される。
set nowritebackup
" バックアップ/スワップファイルを作成する/しない
set nobackup
if version >= 703
  " 再読込、vim終了後も継続するアンドゥ(7.3)
  " set undofile
  " アンドゥの保存場所(7.3)
  " set undodir=.
endif
" set noswapfile
" viminfoを作成しない
" set viminfo=
" クリップボードを共有
set clipboard+=unnamed
" 8進数を無効にする。<C-a>,<C-x>に影響する
set nrformats-=octal
" キーコードやマッピングされたキー列が完了するのを待つ時間(ミリ秒)
set timeout timeoutlen=3000 ttimeoutlen=100
" 編集結果非保存のバッファから、新しいバッファを開くときに警告を出さない
set hidden
" ヒストリの保存数
set history=50
" 日本語の行の連結時には空白を入力しない
set formatoptions+=mM
" Visual blockモードでフリーカーソルを有効にする
set virtualedit=block
" カーソルキーで行末/行頭の移動可能に設定
set whichwrap=b,s,[,],<,>
" バックスペースでインデントや改行を削除できるようにする
set backspace=indent,eol,start
" □や○の文字があってもカーソル位置がずれないようにする
set ambiwidth=double
" コマンドライン補完するときに強化されたものを使う
set wildmenu
" マウスを有効にする
if has('mouse')
  set mouse=a
endif
" pluginを使用可能にする
filetype plugin indent on

"----------------------------------------
" 検索
"----------------------------------------
" 検索の時に大文字小文字を区別しない
" ただし大文字小文字の両方が含まれている場合は大文字小文字を区別する
set ignorecase
set smartcase
" 検索時にファイルの最後まで行ったら最初に戻る
set wrapscan
" インクリメンタルサーチ
set incsearch
" 検索文字の強調表示
set hlsearch
" w,bの移動で認識する文字
" set iskeyword=a-z,A-Z,48-57,_,.,-,>
" vimgrep をデフォルトのgrepとする場合internal
" set grepprg=internal

"----------------------------------------
" 表示設定
"----------------------------------------
" スプラッシュ(起動時のメッセージ)を表示しない
" set shortmess+=I
" エラー時の音とビジュアルベルの抑制(gvimは.gvimrcで設定)
set noerrorbells
set novisualbell
set visualbell t_vb=
" マクロ実行中などの画面再描画を行わない
" WindowsXpまたはWindowテーマが「Windowsクラシック」で
" Google日本語入力を使用するとIビームカーソルが残る場合にも有効
" set lazyredraw
" Windowsでディレクトリパスの区切り文字表示に / を使えるようにする
set shellslash
" 行番号表示
set number
"括弧の入力時にカーソルを対応する括弧の上に一定時間表示させる
set showmatch
if version >= 703
  " 相対行番号表示(7.3)
  " set relativenumber
endif
" 括弧の対応表示時間
set showmatch matchtime=1
" タブを設定
" set ts=4 sw=4 sts=4
" 自動的にインデントする
set autoindent
" Cインデントの設定
set cinoptions+=:0
" タイトルを表示
set title
" コマンドラインの高さ (gvimはgvimrcで指定)
" set cmdheight=2
set laststatus=2
" コマンドをステータス行に表示
set showcmd
" 画面最後の行をできる限り表示する
set display=lastline
" Tab、行末の半角スペースを明示的に表示する
set list
set listchars=tab:^\ ,trail:~

" ハイライトを有効にする
if &t_Co > 2 || has('gui_running')
  syntax on
endif
" 色テーマ設定
" gvimの色テーマは.gvimrcで指定する
" colorscheme mylight



""""""""""""""""""""""""""""""
" ステータスラインに文字コード等表示
" iconvが使用可能の場合、カーソル上の文字コードをエンコードに応じた表示にするFencB()を使用
"""""""""""""""""""""""""""""""
if has('iconv')
  set statusline=%<%f\ %m\ %r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=[0x%{FencB()}]\ (%v,%l)/%L%8P\ 
else
  set statusline=%<%f\ %m\ %r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=\ (%v,%l)/%L%8P\ 
endif

" FencB() : カーソル上の文字コードをエンコードに応じた表示にする
function! FencB()
  let c = matchstr(getline('.'), '.', col('.') - 1)
  let c = iconv(c, &enc, &fenc)
  return s:Byte2hex(s:Str2byte(c))
endfunction

function! s:Str2byte(str)
  return map(range(len(a:str)), 'char2nr(a:str[v:val])')
endfunction

function! s:Byte2hex(bytes)
  return join(map(copy(a:bytes), 'printf("%02X", v:val)'), '')
endfunction

"----------------------------------------
" diff/patch
"----------------------------------------
" diffの設定
if has('win32') || has('win64')
  set diffexpr=MyDiff()
  function! MyDiff()
    " 7.3.443 以降の変更に対応
    silent! let saved_sxq=&shellxquote
    silent! set shellxquote=
    let opt = '-a --binary '
    if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
    if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
    let arg1 = v:fname_in
    if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
    let arg2 = v:fname_new
    if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
    let arg3 = v:fname_out
    if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
    let cmd = '!diff ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
    silent execute cmd
    silent! let &shellxquote = saved_sxq
  endfunction
endif

" 現バッファの差分表示(変更箇所の表示)
command! DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
" ファイルまたはバッファ番号を指定して差分表示。#なら裏バッファと比較
command! -nargs=? -complete=file Diff if '<args>'=='' | browse vertical diffsplit|else| vertical diffsplit <args>|endif
" パッチコマンド
set patchexpr=MyPatch()
function! MyPatch()
   call system($VIM."\\'.'patch -o " . v:fname_out . " " . v:fname_in . " < " . v:fname_diff)
endfunction

"----------------------------------------
" ノーマルモード
"----------------------------------------
" ヘルプ検索
nnoremap <F1> K
" 現在開いているvimスクリプトファイルを実行
nnoremap <F8> :source %<CR>
" 強制全保存終了を無効化
nnoremap ZZ <Nop>
" カーソルをj k では表示行で移動する。物理行移動は<C-n>,<C-p>
" キーボードマクロには物理行移動を推奨
" h l は行末、行頭を超えることが可能に設定(whichwrap)
nnoremap <Down> gj
nnoremap <Up>   gk
nnoremap h <Left>zv
nnoremap j gj
nnoremap k gk
nnoremap l <Right>zv
"全選択
nnoremap <C-S-a> gg<S-v><S-g>
"ブラウザと同じ操作 スペースでダウンアップ
nnoremap <Space> <C-f>
nnoremap <S-Space> <C-b>
" 検索後にジャンプした際に検索単語を画面中央に持ってくる
nnoremap n nzz
nnoremap N Nzz
nnoremap * *zz
nnoremap # #zz
nnoremap g* g*zz
nnoremap g# g#zz
" 1行ヤンク、しかし改行はヤンクしない
nnoremap yyy ^y$
"----------------------------------------
" 挿入モード
"----------------------------------------
"括弧の補完
inoremap { {}<LEFT>
inoremap [ []<LEFT>
inoremap ( ()<LEFT>
inoremap " ""<LEFT>
inoremap ' ''<LEFT>
"行の途中で改行
inoremap <S-Enter> <C-O><S-$><Enter>
"Ctrl-vでヤンクの貼付け
inoremap <C-v> <Esc>pa
"挿入モードでのリドゥ <C-r>はvim-latexと競合
"inoremap <C-r> <Esc><C-r>i
inoremap <A-r> <Esc><C-r>i
"挿入モードでのアンドゥ
inoremap <C-z> <Esc>ui
"挿入モードでの全選択
inoremap <C-a> <Esc>gg<S-v><S-g>i
"全角数字を半角数字に変更
inoremap  0
inoremap  1
inoremap  2
inoremap  3
inoremap  4
inoremap  5
inoremap  6
inoremap  7
inoremap  8
inoremap  9
"句読点の修繕
"%、¥の半角化
inoremap  %
inoremap  \
"----------------------------------------
" ビジュアルモード
"----------------------------------------
vnoremap { "zdi^v{<c-r>z}<esc>
vnoremap [ "zdi^v[<c-r>z]<esc>
vnoremap ( "zdi^v(<c-r>z)<esc>
vnoremap " "zdi^v"<c-r>z^v"<esc>
vnoremap ' "zdi'<c-r>z'<esc>
" ビジュアルモードでのヤンク後に戻らない
vnoremap y y<Esc>`>
"----------------------------------------
" コマンドモード
"----------------------------------------
cnoremap :close :c


"----------------------------------------
"マッピングの書き方
"ノーマルモード+ビジュアルモード       noremap
"""コマンドラインモード+インサートモード    noremap!
""ノーマルモード             nnoremap
""ビジュアル(選択)モード          vnoremap
""コマンドラインモード                cnoremap
""インサート(挿入)モード          inoremap

""自分、プラグインのショートカットキーを調べる
":map
":nmap ノーマルモード"
":imap インサートモード"
":vmap ヴィジュアルモード"
"

""""""""""""""""""""""""""""""
" 挿入モード時、ステータスラインのカラー変更
""""""""""""""""""""""""""""""
let g:hi_insert = 'highlight StatusLine guifg=darkblue guibg=darkyellow gui=none ctermfg=blue ctermbg=yellow cterm=none'

if has('syntax')
  augroup InsertHook
    autocmd!
    autocmd InsertEnter * call s:StatusLine('Enter')
    autocmd InsertLeave * call s:StatusLine('Leave')
  augroup END
endif
" if has('unix') && !has('gui_running')
"   " ESCですぐに反映されない対策
"   inoremap <silent> <ESC> <ESC>
" endif

let s:slhlcmd = ''
function! s:StatusLine(mode)
  if a:mode == 'Enter'
    silent! let s:slhlcmd = 'highlight ' . s:GetHighlight('StatusLine')
    silent exec g:hi_insert
  else
    highlight clear StatusLine
    silent exec s:slhlcmd
    redraw
  endif
endfunction

function! s:GetHighlight(hi)
  redir => hl
  exec 'highlight '.a:hi
  redir END
  let hl = substitute(hl, '[\r\n]', '', 'g')
  let hl = substitute(hl, 'xxx', '', '')
  return hl
endfunction

""""""""""""""""""""""""""""""
" 全角スペースを表示
""""""""""""""""""""""""""""""
" コメント以外で全角スペースを指定しているので、scriptencodingと、
" このファイルのエンコードが一致するよう注意!
" 強調表示されない場合、ここでscriptencodingを指定するとうまくいく事があります。
" scriptencoding cp932
function! ZenkakuSpace()
  silent! let hi = s:GetHighlight('ZenkakuSpace')
  if hi =~ 'E411' || hi =~ 'cleared$'
    highlight ZenkakuSpace cterm=underline ctermfg=darkgrey gui=underline guifg=darkgrey
  endif
endfunction
if has('syntax')
  augroup ZenkakuSpace
    autocmd!
    autocmd ColorScheme       * call ZenkakuSpace()
    autocmd VimEnter,WinEnter * match ZenkakuSpace / /
  augroup END
  call ZenkakuSpace()
endif

""""""""""""""""""""""""""""""
" grep,tagsのためカレントディレクトリをファイルと同じディレクトリに移動する
""""""""""""""""""""""""""""""
" if exists('+autochdir')
"   "autochdirがある場合カレントディレクトリを移動
"   set autochdir
" else
"   "autochdirが存在しないが、カレントディレクトリを移動したい場合
"   au BufEnter * execute ":silent! lcd " . escape(expand("%:p:h"), ' ')
" endif


"%%%%%%%%%%%%%%%%%%%%%%%%%%%%Tex
"Texの数式の表示を変更
let g:tex_conceal = ''
"、。の, . に置換
augroup filetype_latex
    autocmd!
    autocmd InsertCharPre *.tex call InsertCharReplace()
augroup END

func! InsertCharReplace()
    if (v:char ==# "")
        let v:char = ""
    elseif (v:char ==# "")
        let v:char = ""
    endif
endfunc
"----------------------------------------
" 各種プラグイン設定
"----------------------------------------


filetype on
filetype plugin on
filetype indent on
set relativenumber
"80行目に印が出る
set colorcolumn=80
"ヤンクしたものをクリップボードに挿入
set clipboard=unnamed,autoselect

" カレント行ハイライトON
set cursorline
" アンダーラインを引く(color terminal)
highlight CursorLine cterm=underline ctermfg=NONE ctermbg=NONE
" アンダーラインを引く(gui)
highlight CursorLine gui=underline guifg=NONE guibg=NONE

syntax on
 " Better command-line completion
 "  " コマンドライン補完を便利に
set wildmenu
 " Show partial commands in the last line of the screen
 "  " タイプ途中のコマンドを画面最下行に表示
set showcmd
" Highlight searches (use <C-L> to temporarily turn off highlighting; see the
"  " mapping of <C-L> below)
"   " 検索語を強調表示(<C-L>を押すと現在の強調表示を解除する)
set hlsearch
" When opening a new line and no filetype-specific indenting is enabled, keep
"  " the same indent as the line you're currently on. Useful for READMEs, etc.
"   " オートインデント
set autoindent
 " Stop certain movements from always going to the first character of a line.
 "  " While this behaviour deviates from that of Vi, it does what most users
 "   " coming from other editors would expect.
 "    " 移動コマンドを使ったとき、行頭に移動しない
set nostartofline  
" Display the cursor position on the last line of the screen or in the status
"  " line of a window
"   " 画面最下行にルーラーを表示する
set ruler
 " Use visual bell instead of beeping when doing something wrong
 "  " ビープの代わりにビジュアルベル(画面フラッシュ)を使う
set visualbell
" Always display the status line, even if only one window is displayed
"  " ステータスラインを常に表示する
set laststatus=2

set nocompatible

"全角スペースがこのようにハイライトされる。 
function! ZenkakuSpace()
      highlight ZenkakuSpace cterm=reverse ctermfg=DarkMagenta gui=reverse guifg=DarkMagenta
  endfunction

  if has('syntax')
        augroup ZenkakuSpace
                autocmd!
                autocmd ColorScheme       * call ZenkakuSpace()
                    autocmd VimEnter,WinEnter * match ZenkakuSpace / /
                  augroup END
                    call ZenkakuSpace()
                endif

"モードの際に色が変わる。
if !exists('g:hi_insert')
      let g:hi_insert = 'highlight StatusLine guifg=White guibg=DarkCyan gui=none ctermfg=White ctermbg=DarkCyan cterm=none'
  endif

  if has('unix') && !has('gui_running')
        inoremap <silent> <ESC> <ESC>
          inoremap <silent> <C-[> <ESC>
      endif

      if has('syntax')
            augroup InsertHook
                autocmd!
                    autocmd InsertEnter * call s:StatusLine('Enter')
                    autocmd InsertLeave * call s:StatusLine('Leave')
                      augroup END
                  endif

                  let s:slhlcmd = ''
                  function! s:StatusLine(mode)
                        if a:mode == 'Enter'
                            silent! let s:slhlcmd = 'highlight ' . s:GetHighlight('StatusLine')
                                silent exec g:hi_insert
                              else
                                      highlight clear StatusLine
                                          silent exec s:slhlcmd
                                        endif
                                    endfunction

                                    function! s:GetHighlight(hi)
                                          redir => hl
                                            exec 'highlight '.a:hi
                                          redir END
                                            let hl = substitute(hl, '[\r\n]', '', 'g')
                                              let hl = substitute(hl, 'xxx', '', '')
                                                return hl
                                        endfunction
"*************************************************NeoBundle
filetype off  "最初にfiletypeをoffにしておく。必須!

 if has('vim_starting')
   set runtimepath+=~/.vim/bundle/neobundle.vim  "neobudle.vimの関数を呼ぶためにインストールしたディレクトリを指定
   call neobundle#rc(expand('~/.vim/bundle/'))   "プログインをインストールするディレクトリを指定
 endif

"プロキシ使用時は以下の設定の有効にする
let g:neobundle_default_git_protocol='proxy-east.uec.ac.jp'
"以下の書式で管理するプラグインを記述する
NeoBundle 'Shougo/neobundle.vim'
"NeoBundle 'git:github.com/vim-scripts/project.vim'
"Yank履歴の参照。Yankringの代替版
NeoBundle 'git://github.com/LeafCage/yankround.vim'
NeoBundle 'Shougo/vimproc', {
      \ 'build' : {
      \     'windows' : 'echo "Sorry, cannot update vimproc binary file in Windows."',
      \     'cygwin' : 'make -f make_cygwin.mak',
      \     'mac' : 'make -f make_mac.mak',
      \     'unix' : 'make -f make_unix.mak',
      \    },
      \ }
"cなどのプログラムをvim上で実行
NeoBundle 'thinca/vim-quickrun'
"Latexのプラグイン
NeoBundle 'git://github.com/jcf/vim-latex.git'
"文字をなにか打ち込んでCtrl+pを押すと補完キーワード
NeoBundle 'kien/ctrlp.vim'
"ファイル変更後、保存んしてエラーがあるとその行に>>が出来る
NeoBundle 'git://github.com/scrooloose/syntastic.git'
NeoBundle 'git://github.com/scrooloose/nerdtree.git'
"Visual Modeで選択した範囲のソースを コメントアウト
NeoBundle 'git://github.com/sakuraiyuta/commentout.vim'
NeoBundle 'Shougo/neosnippet'
NeoBundle 'git://github.com/Shougo/neocomplcache.vim'
"移動目安をアルファベットで明示してくれる、飛ぶやつ、;b,;w
NeoBundle 'git://github.com/haya14busa/vim-easymotion'
NeoBundle 'git://github.com/juanpabloaj/ShowMarks'
"ヴィジュアルもモードで選択したものを囲う
NeoBundle 'git://github.com/tpope/vim-surround'
"マトラボのプラグイン、シンタックス
NeoBundle 'git://github.com/vim-scripts/MatlabFilesEdition'
"schime color molokai
NeoBundle 'git://github.com/tomasr/molokai'
"autosaveのプラグイン
NeoBundle 'git://github.com/syui/wauto.vim'
"NeoBundle 'git://github.com/Shougo/neobundle.vim'
"開いたファイルの履歴、ブックマーク
NeoBundle 'git://github.com/mhinz/vim-startify'
"指定文字の強調
NeoBundle 'git://github.com/t9md/vim-quickhl'
"文字入力の変更
NeoBundle 'git://github.com/kana/vim-smartchr'
"置換のプラグイン
"NeoBundle 'git://github.com/osyo-manga/vim-over'
filetype plugin on     "最後にplugin onにしておく。必須!
filetype indent on
"**************************************************project
map <F2> <Esc>:Pro<CR>
"**************************************************skk
map! <C-x> <plug>(skk-toggle-im)
"<C-x>に<C-j>からに変更
"let g:skk_large_jisyo = expand('/Users/inouereo/.vim/bundle/skk/plugin/SKK-JISYO.L')
"**************************************************nepsnippet
let g:neocomplcache_snippets_dir='~/.vim/bundle/neosnippet/autoload/neosnippet/snippets'
 " Plugin key-mappings.
 imap <C-k>     <Plug>(neosnippet_expand_or_jump)
 smap <C-k>     <Plug>(neosnippet_expand_or_jump)

 " SuperTab like snippets behavior.
 imap <expr><TAB> neosnippet#expandable() <Bar><bar> neosnippet#jumpable() ?
 "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>"
 smap <expr><TAB> neosnippet#expandable() <Bar><bar> neosnippet#jumpable() ?
 "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
 " For snippet_complete marker.
 if has('conceal')
   set conceallevel=2 concealcursor=i
   endif
"*************************************************neocomplcache
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_enable_auto_select = 1
inoremap <expr><C-y> neocomplcache#close_popup()
inoremap <expr><C-h> neocomplcache#smart_close_popup()
inoremap <expr><C-l> neocomplcache#complete_common_string()
inoremap <expr><C-g> neocomplcache#undo_completion()
let g:neocomplcache_enable_underbar_completion = 1
let g:neocomplcache_min_syntax_length = 3
inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"   
inoremap <expr><S-TAB>  pumvisible() ? "\<C-p>" : "\<S-TAB>" 
"*************************************************yankring
set clipboard+=unnamedplus,unnamed

"************************************************pathogen
"execute pathogen#infect()
"call pathogen#runtime_append_all_bundles()
"************************************************vimproc
let g:quickrun_config = {
            \   "_" : {
            \       "runner" : "vimproc",
            \       "runner/vimproc/updatetime" : 60
            \   },
            \}
" 横分割をするようにする
 let g:quickrun_config={'*': {'split': ''}}

" 横分割時は下へ、 縦分割時は右へ新しいウィンドウが開くようにする
 set splitbelow
 set splitright
"************************************************quickrun
nnoremap <expr><silent> <C-c> quickrun#is_running() ? quickrun#sweep_sessions() : "\<C-c>"

"**************************************************ctrlp
let g:ctrlp_use_migemo = 1
let g:ctrlp_clear_cache_on_exit = 0   " 終了時キャッシュをクリアしない
let g:ctrlp_mruf_max            = 500 " MRUの最大記録数
let g:ctrlp_open_new_file       = 1   " 新規ファイル作成時にタブで開く
"Use this option to change the mapping to invoke CtrlP in |Normal| mode: 
  let g:ctrlp_map = '<c-@>'
"
"******************************************vim-easymotion
" http://blog.remora.cx/2012/08/vim-easymotion.html
" ホームポジションに近いキーを使う
let g:EasyMotion_keys='hjklasdfgyuiopqwertnmzxcvbHJKLASDFGYUIOPQWERTNMZXCVB'
" 「;」 + 何かにマッピング
let g:EasyMotion_leader_key=";"
" 1 ストローク選択を優先する
let g:EasyMotion_grouping=1
" カラー設定変更
hi EasyMotionTarget ctermbg=none ctermfg=red
hi EasyMotionShade  ctermbg=none ctermfg=blue

"************************************************NERDTree
map <F3> <Esc>:NERDTree<CR>


""**************************************************Vim-LaTeX
filetype plugin on
filetype indent on
"set shellslash
set grepprg=grep\ -nH\ $*
let g:tex_flavor='latex'
let g:Imap_UsePlaceHolders = 1
let g:Imap_DeleteEmptyPlaceHolders = 1
let g:Imap_StickyPlaceHolders = 0
let g:Tex_DefaultTargetFormat = 'pdf'
"let g:Tex_FormatDependency_pdf = 'pdf'
let g:Tex_FormatDependency_pdf = 'dvi,pdf'
"let g:Tex_FormatDependency_pdf = 'dvi,ps,pdf'
let g:Tex_FormatDependency_ps = 'dvi,ps'
let g:Tex_CompileRule_pdf = '/usr/texbin/ptex2pdf -u -l -ot "-synctex=1 -interaction=nonstopmode -file-line-error-style" $*'
"let g:Tex_CompileRule_pdf = '/usr/texbin/pdflatex -synctex=1 -interaction=nonstopmode -file-line-error-style $*'
"let g:Tex_CompileRule_pdf = '/usr/texbin/lualatex -synctex=1 -interaction=nonstopmode -file-line-error-style $*'
"let g:Tex_CompileRule_pdf = '/usr/texbin/luajitlatex -synctex=1 -interaction=nonstopmode -file-line-error-style $*'
"let g:Tex_CompileRule_pdf = '/usr/texbin/xelatex -synctex=1 -interaction=nonstopmode -file-line-error-style $*'
"let g:Tex_CompileRule_pdf = '/usr/texbin/dvipdfmx $*.dvi'
"let g:Tex_CompileRule_pdf = '/usr/local/bin/ps2pdf $*.ps'
let g:Tex_CompileRule_ps = '/usr/texbin/dvips -Ppdf -o $*.ps $*.dvi'
let g:Tex_CompileRule_dvi = '/usr/texbin/uplatex -synctex=1 -interaction=nonstopmode -file-line-error-style $*'
let g:Tex_BibtexFlavor = '/usr/texbin/upbibtex'
"let g:Tex_BibtexFlavor = '/usr/texbin/bibtex'
"let g:Tex_BibtexFlavor = '/usr/texbin/bibtexu'
let g:Tex_MakeIndexFlavor = '/usr/texbin/mendex $*.idx'
"let g:Tex_MakeIndexFlavor = '/usr/texbin/makeindex $*.idx'
"let g:Tex_MakeIndexFlavor = '/usr/texbin/texindy $*.idx'
let g:Tex_UseEditorSettingInDVIViewer = 1
let g:tex_viewrule_pdf = '/usr/bin/open -a skim.app'
"let g:tex_viewrule_pdf = '/usr/bin/open -a preview.app'
"let g:tex_viewrule_pdf = '/usr/bin/open -a texshop.app'
"let g:Tex_ViewRule_pdf = '/usr/bin/open -a TeXworks.app'
"let g:Tex_ViewRule_pdf = '/usr/bin/open -a Firefox.app'
"let g:Tex_ViewRule_pdf = '/usr/bin/open -a "Adobe Reader.app"'
"let g:Tex_ViewRule_pdf = '/usr/bin/open'
"常に閉じずに開く
let g:Tex_AutoFolding = 0
let g:Tex_SmartKeyQuote = 0
"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
""Vim-latex test
"" Vim-LaTeXを利用するファイルの拡張子を設定する
"let g:tex_flavor='latex'
"au BufNewFile,BufRead *.tex,*.latex,*.sty,*.dtx,*.ltx,*.bbl    setf tex
"" 上記の拡張子のファイルが開かれたらVim-LaTeXを呼び出すようにする
"filetype plugin on
"" win32 環境ならlatexを適切に呼び出すために'shellslash'が必要らしい
"set shellslash
"" IMPORTANT: grep will sometimes skip displaying the file name if you
"" search in a singe file. This will confuse latex-suite. Set your grep
"" program to alway generate a file-name.
"set grepprg=grep\ -nH\ $*
""" .texファイルのコンパイルプログラムを指定(エラーで停止しないようオプション指定)
"let g:Tex_CompileRule_dvi = 'platex --interaction=nonstopmode $*'
""" .bibファイルのコンパイルプログラムを指定
"let g:Tex_BibtexFlavor = 'jbibtex'
""" .dviファイルのビュープログラムを指定 環境に合わせてパスを設定すること
"let g:Tex_ViewRule_dvi = 'c:\w32tex\dviout\dviout.exe'
""" pdfファイル生成のための依存関係を記述。
""" 以下の設定の場合、ターゲットにpdfを指定して\llでコンパイルすると、
""" まず.dviファイルが作られ、次にそれをもとに.pdfファイルが作られる
"let g:Tex_FormatDependency_pdf = 'dvi,pdf'
""" .dviファイルのコンパイルプログラムを指定
"let g:Tex_CompileRule_pdf = 'dvipdfmx $*.dvi'
""" .pdfファイルのビュープログラムを指定 環境に合わせてパスを設定すること
"let g:Tex_ViewRule_pdf = 'C:\Program Files\PDF-Xchanger\PDF Viewer\PDFXCview.exe -reuse-instance'
""%%%%%%%%%%%%%%%%%%%%%%%%vim-quickhl
nmap <Space>m <Plug>(quickhl-manual-this)
xmap <Space>m <Plug>(quickhl-manual-this)
nmap <Space>M <Plug>(quickhl-manual-reset)
xmap <Space>M <Plug>(quickhl-manual-reset)
"%%%%%%%%%%%%%%%%%%%%%%%%%%Yanground Yangringの代替版
nmap p <Plug>(yankround-p)
nmap P <Plug>(yankround-P)
nmap gp <Plug>(yankround-gp)
nmap gP <Plug>(yankround-gP)
nmap <C-p> <Plug>(yankround-prev)
nmap <C-n> <Plug>(yankround-next)
"%%%%%%%%%%%%%%%%%%%%%%%%%%tabの設定
" Anywhere SID.
function! s:SID_PREFIX()
  return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSID_PREFIX$')
endfunction
" Set tabline.
function! s:my_tabline()  "{{{
  let s = ''
  for i in range(1, tabpagenr('$'))
    let bufnrs = tabpagebuflist(i)
    let bufnr = bufnrs[tabpagewinnr(i) - 1]  " first window, first appears
    let no = i  " display 0-origin tabpagenr.
    let mod = getbufvar(bufnr, '&modified') ? '!' : ' '
    let title = fnamemodify(bufname(bufnr), ':t')
    let title = '[' . title . ']'
    let s .= '%'.i.'T'
    let s .= '%#' . (i == tabpagenr() ? 'TabLineSel' : 'TabLine') . '#'
    let s .= no . ':' . title
    let s .= mod
    let s .= '%#TabLineFill# '
  endfor
  let s .= '%#TabLineFill#%T%=%#TabLine#'
  return s
endfunction "}}}
let &tabline = '%!'. s:SID_PREFIX() . 'my_tabline()'
set showtabline=2 " 常にタブラインを表示

" The prefix key.
nnoremap    [Tag]   <Nop>
nmap    t [Tag]
" Tab jump
for n in range(1, 9)
  execute 'nnoremap <silent> [Tag]'.n  ':<C-u>tabnext'.n.'<CR>'
endfor
" t1 で1番左のタブ、t2 で1番左から2番目のタブにジャンプ
map <silent> [Tag]c :tablast <bar> tabnew<CR>
" tc 新しいタブを一番右に作る
map <silent> [Tag]x :tabclose<CR>
" tx タブを閉じる
map <silent> [Tag]n :tabnext<CR>
" tn 次のタブ
map <silent> [Tag]p :tabprevious<CR>
" tp 前のタブ
@mattn
Copy link
Member

mattn commented Mar 3, 2014

文章の一部を修正しました。

  • 「上図に」→「上手く」
  • vimrcをコード記法に修正
  • 「vimic」→「vimrc」

@mattn
Copy link
Member

mattn commented Mar 3, 2014

例えばどのモーションで上手く動かないのか説明を書くと、surroundファンが答えてくれます。
※僕はsurround使ってません。

@k-takata
Copy link
Member

k-takata commented Mar 3, 2014

大きなファイルを貼るときは Gist などを使うのがよいでしょう。
ここに貼るときに整形する方法は https://help.github.com/articles/github-flavored-markdown#syntax-highlighting を見てください。言語名は、VimLまたはvimを指定してください。

このような場合、みなさんはどのように原因を調べていますか。

前回も指摘されていましたが、.vimrcを少しずつ削っていって、現象が再現する最低限の.vimrcを見つけることが解決の近道でしょう。

@DeaR
Copy link
Member

DeaR commented Mar 3, 2014

このような場合、みなさんはどのように原因を調べていますか。

2分探索
まずvim-surroundのみの最低限で他をコメントアウト

大丈夫なら半分くらいのコメントアウトした個所を戻す

大丈夫なら(略)

vim-surroundが上手く機能せず、なにかのプラグインと混同しているみたいです。

具体的に何が動かないのかがわかりません。

  • csdsといったマッピングが反応しない → verbose nmap csとか調べてみる
  • ちゃんと<Plug>Dsurroundとかに設定されている → 2分探査して競合してるプラグイン探していく

@mattn
Copy link
Member

mattn commented Mar 3, 2014

コメントアウト使うのも良いですが、finish を入れると楽出来ます。

@Shougo
Copy link
Member

Shougo commented Mar 3, 2014

.vimrcについては、できるだけ短い状態(できれば 50行以下、20行程度がベスト)で再現させることをやるのが良いです。
そうすることで他の人が再現しやすくなるし、その過程で問題が見つかることも多いです。

具体的に何が動かないのかがわかりません。

はい。これはVimを起動してからの再現手順が示されていないのでよく分からないのですね。
他の人が再現しやすいように、最小構成の.vimrcだけでなく手順(できればVim起動後から)があるとよいです。

@InoueReo0406
Copy link
Author

皆様、返信有難うございます。ようやく暇ができて返信をしている状況です。ごめんなさい。
vimircの削除ですが、全く50行以下にするのが難しいです。コツなどはありますか。
毎回、vimrcを読み込むためにvimを再起動は時間がかかります。

自分が私用とした行動は以下のとおりです
1 vim起動
2 以下の文章が書かれていファイルの起動
This is a selected text
3 a selected textをヴィジュアルモードにて選択
4 S'を押す
5 おそらくbuffer?のものが貼付けされる。

参考http://vimblog.hatenablog.com/entry/vim_plugin_surround_vim

@raa0121
Copy link
Member

raa0121 commented Mar 14, 2014

いろいろ削ってテストしてみましたが、これ
<C-S-s>' じゃないですかね?
ヴィジュアルモードでSを押した時点で

{Visual}["x]S ビジュアル選択された行を [レジスタ x に入れ] 削除し、
挿入を始める ({Visual} については Visual-mode を参
照)。{Vi にはない}
が実行されるはずです。

見当違いだったらごめんなさい。

@raa0121
Copy link
Member

raa0121 commented Mar 14, 2014

ちなみに、削ったのはこんなかんじです
https://gist.github.com/raa0121/9546135

@InoueReo0406
Copy link
Author

' なのですかね。自分もこのコマンドで実行できました。
だから他のものも参考を見ながら試すと以下のとおりになりました。
1以下の文章が書かれていファイルの起動
This is a selected text
2 a selected textをヴィジュアルモードにて選択して"を押す
3^v" a selected text ^v"

@Shougo
Copy link
Member

Shougo commented Mar 16, 2014

vimircの削除ですが、全く50行以下にするのが難しいです。コツなどはありますか。
毎回、vimrcを読み込むためにvimを再起動は時間がかかります。

まずは、余計なプラグインの設定を削ることです。この場合はvim-surround以外のプラグイン設定は必要ないはず。さらに、編集用の設定以外のVimの設定もいらないでしょう。
vimrcの実行はこのようにするとよいです。Vimを再起動するのはコマンドラインからのほうが良いでしょう。

$ vim -u test.vimrc -N -i NONE -U NONE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants