vim notes
While editing a TeX file in vim, jump to the specified chapter
Install unite.vim and unite-outline. Then
:Unite outline
Install unite.vim and unite-outline
mkdir /home/hoge/.vim/bundle
git clone https://github.com/Shougo/neobundle.vim /home/hoge/.vim/bundle/neobundle.vim
Then in vimrc
" Note: Skip initialization for vim-tiny or vim-small.
if 0 | endif
if &compatible
set nocompatible " Be improved
endif
" Required:
set runtimepath+=~/.vim/bundle/neobundle.vim/
" Required:
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundle 'Shougo/unite.vim'
NeoBundle 'Shougo/unite-outline'
" Let NeoBundle manage NeoBundle
" Required:
NeoBundleFetch 'Shougo/neobundle.vim'
" My Bundles here:
" Refer to |:NeoBundle-examples|.
" Note: You don't set neobundle setting in .gvimrc!
call neobundle#end()
" Required:
filetype plugin indent on
" If there are uninstalled bundles found on startup,
" this will conveniently prompt you to install them.
NeoBundleCheck
and start up vim, it will ask if you want to install unite.vim and unite-outline. Note that it takes a little time to install.
Unite outline buffer always displayed
:Unite -winheight=15 -no-quit outline
For vertical split
:Unite -vertical -winwidth=30 -no-quit outline
Despite setting
set tw=0
in vimrc, it is not reflected at all. At any rate, it is very annoying when writing Intel Fortran90 programs.
A new superfluous meddling that appeared in vim installed in Ubuntu16.04.
For Fortran90, you can create fortran.vim in .vim/after/ftplugin/ and use
set tw=0
in it. Also
:verbose set textwidth
will tell you which file is the culprit. I do not use it anymore, but if you are messing with fixed format files
if (b:fortran_fixed_source == 1)
setlocal comments=:!,:*,:C
setlocal tw=72
else
setlocal comments=:!
setlocal tw=0
endif
Indented when typing certain characters or strings.
A very superfluous intervention. It cannot be disabled with
set noautoindent
set nosmartindent
:set indentkeys
will tell you which strings are indented when typed. To disable it, use
:set indentkeys=
This is also not enabled by writing in vimrc. Therefor,
:verbose set indentkeys
will identify the culprit file and create a file in .vim/after/indent/ that will disable it (for example, for a TeX file, in tex.vim,
set indentkeys=
) . However, this will not indent everything. For example, if you want to indent only newlines, you can use
set indentkeys=<Return>
It seems that you can set various indentation methods, but personally, I do not need indentation except for newlines, so this is sufficient.
Automatically turn off Fcitx when returning from insert mode to normal mode.
There is a useful plugin available, so use it. installed using NeoBundle. Specifically, just add
NeoBundle 'vim-scripts/fcitx.vim'
to the part of vimrc you wrote when you installed unite-vim.
I'm a whitespace person, not a tab person, so in vimrc
set tabstop=2
set expandtab
set shiftwidth=2
number is number of spaces when indented.
Selecting a range in Vim, GVim results in selecting the entire line containing that range.
I still have not found a solution. Because of this
:s/./&/gn
I cannot do character counts using and it also replaces things I do not want replaced.
Character count in Vim, GVim
g Ctrl-g
Prevent indentation when pasting copied instead of yanked in vim
:set paste
Move vim cursor by display line
vimrcにて
nnoremap j gj
nnoremap k gk
nnoremap <Down> gj
nnoremap <Up> gk
Only valid in normal mode. Cannot be used in insert mode.
Move between end of previous line and beginning of next line
In vimrc
set whichwrap=b,s,<,>,[,]
Update diff view with vimdiff
:diffupdate
Differential display mode in gvim
:vertical diffsplit filename
Moving to the current directory with gvim
:set autochdir
This is not reflacted even though set autochdir is specified in vimrc in gvim
vimrcに
cd %:h
Since autochdir is applied by default in vim and gvim installed on Ubuntu 16.04, these measures are no longer necessary.
Search for newline and replace with newline in vim
Example (replace newline with hoge newline)
:%s/\n/hoge^M/gc
^M can be called by pressing Ctrl+v then Enter
Buffer Handling
Displaying Buffers
:ls
Go to specified buffer
:b number
Go to next buffer
:bn
Go to previous buffer
:bp
Character encoding related
vim character encoding check
:set enc?
file character encoding check
:set fenc?
specify encoding and save again
:set fenc=character code
specify character code and read again
:e ++enc=character code
Spell check by set spell does not work while editing TeX files.
Create a file named after/syntax/tex.vim in the .vim directory
syntax spell toplevel
Replace part of the searched string
For example, if you want to replace [1] or [2] with [[01]] or [[02]] (but not the numbers 1 or 2), use the hold buffer
:s/[\(.\)]/[[0\1]]/g
In other words, enclose the part you do not want to replace with¥(and ¥) and call it with ¥1 for the converted part. You can specify multiple hold buffers and call them from ¥1 to ¥.
I often forget about mobile systems, so link (Jpn)
Make JupyterLab a vim specification
pip install jupyterlab-vim