vimをどうやって私達の神器にしますか?
Vimは上古神器で、接触したばかりの学生は扱いにくいかもしれません。この文章は主にみんなを率いて素早く入門し、現在流行しているvim-pluginを共有し続けます。興味がある学生はto-vim-tmux-zsh倉庫を参考にしてTmuxとZshを研究し続けます。
Vimの強み Vimは完全にプラットフォームにまたがるエディタです。 Vimは、カスタマイズ可能で拡張可能なエディタです。 Vimは良好な生態環境を持っています。 初心者ガイド通常モード:デフォルトモードは、テキストの削除、置換、復元、貼り付けなどの動作に使用できます。 挿入モード:入力iは挿入モードに入り、通常のエディタの編集モードに相当する。 テレビモード:vを入力してテレビモードに入り、テキストを選択し、コピーなどの操作を行う。 コマンドモード:入力:コマンドモードに入り、内部および外部コマンドを実行できます。 カーソルを移動 hjkl:上下左右; w:前へ2つの単語を移動します。 e:3番目の単語の末尾まで前へ移動します。 :行頭に移動する。 \$現在の行の最後。 H:カーソルが上に移動します。 M:カーソルが中央に移動します。 L:カーソルが最後まで移動します。 gf:パスから指定ファイルにジャンプします。 gg:第一行; G:最後の行; 行番号+G:指定行; ():前の文と次の文に移動します。 {}:前の段と次の段に移動します。 ctrl+o:前の位置にジャンプします。 ctrl+i:ジャンプ前の位置に戻ります。 ctrl+d:下へ半ページ移動します。 ctrl+u:上に半ページ移動します。 ctrl+f:下に全ページ移動します。 ctrl+b:全ページを上に移動する。 終了 esc:普通モードに入る。 :q終了を保存しない; :wq:保存して終了します。 削除 x:現在の文字を削除します。 dw:現在の単語の末尾に削除する。 de:現在の単語の末尾に削除し、現在の文字を含みます。 d\$は現在の行末に削除されます。 dd:行全体を削除する。 dd:2行を削除する。 変更 i:テキストを挿入する。 a:現在の文字の後に挿入モードに入る。 A:現在の行の末尾に追加します。 r:現在の文字を置換します。 o:新しい行を開いて挿入モードに入ります。 s:文字を削除して挿入モードに入ります。 cc:行全体を修正する。 取り消す u:キャンセル ctrl+r:キャンセル コピーして切り取りを貼り付けます y:コピー p:貼り付け yy:現在行をコピーする dd:現在の行を切り取る ファイル:e強制更新 ctrl+gは現在の行とファイル情報 を表示します。
検索/:順方向検索(n:継続検索、N:逆方向検索) 逆方向検索 %:ペアの{、( )を検索します。
置換:s/old/new:行の最初のマッチ列 を置換します。:s/old/new/g:全行のマッチする列 を置換します。:%s/old/new/g:ファイル全体のマッチング列 を置換します。
基本設定
Vimのプロファイルを作成します。vimrc
vim-plugを使ってプラグインを管理します。
ツリーディレクトリ
最後に、to-vim-tmux-zsh倉庫を提出して参考にすることができます。名前の通り、vim以外にtmuxとzshの関連内容があります。
ここで、vimを私達の神器(結び目)にする方法について紹介します。もっと多くの関連vimは入門内容を使っています。私達の以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。
Vimの強み
$ vimtutor // vim
Vimモード検索
置換
基本設定
Vimのプロファイルを作成します。vimrc
touch ~/.vimrc
ファイル・コード
set enc=utf-8
viと互換性がない
set noswapfile
ファイルのバックアップと削除
set nobackup
set noswapfile
if has('persistent_undo')
set undofile
set undodir=~/.vim/undodir
if !isdirectory(&undodir)
call mkdir(&undodir, 'p', 0700)
endif
endif
中国語
set fileencodings=ucs-bom,utf-8,gb18030,latin1
マウスサポート
if has('mouse')
if has('gui_running') || (&term =~ 'xterm' && !has('mac'))
set mouse=a
else
set mouse=nvi
endif
endif
set clipboard=unnamed
テキストメニューの設定
if has('gui_running')
let do_syntax_sel_menu = 1
let do_no_lazyload_menus = 1
endif
if !has('gui_running')
if has('wildmenu')
set wildmenu
set cpoptions-=<
set wildcharm=<C-Z>
nnoremap <F10> :emenu <C-Z>
inoremap <F10> <C-O>:emenu <C-Z>
endif
endif
検索
set ignorecase
set smartcase
set hlsearch
set incsearch
nnoremap <silent> <F2> :nohlsearch<CR>
inoremap <silent> <F2> <C-O>:nohlsearch<CR>
行番号を表示
set number
インデントを設定
set shiftwidth=2
set tabstop=2
現在の行を強調表示する
set cursorline
vimを起動するときは、コードの折り畳みをオフにします。
set nofoldenable
テーマ
syntax enable
colorscheme one
set background=dark
背景が透明です
hi Normal ctermfg=252 ctermbg=none
プラグインの設定vim-plugを使ってプラグインを管理します。
ツリーディレクトリ
Plug 'scrooloose/nerdtree' " https://github.com/preservim/nerdtree
Plug 'jistr/vim-nerdtree-tabs' " https://github.com/jistr/vim-nerdtree-tabs
Plug 'Xuyuanp/nerdtree-git-plugin' " https://github.com/Xuyuanp/nerdtree-git-plugin
Plug 'ryanoasis/vim-devicons' " https://github.com/ryanoasis/vim-devicons
Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " https://github.com/tiagofumo/vim-nerdtree-syntax-highlight
Plug 'tpope/vim-eunuch' " https://github.com/tpope/vim-eunuch
map <C-n> :NERDTreeToggle<CR>
let NERDTreeMinimalUI = 1
let NERDTreeShowHidden = 1
let g:nerdtree_tabs_open_on_console_startup = 1
nnoremap <F5> :UndotreeToggle<cr>
" i
" s
" t
" go
" r
" R
" I
" m
" C
" u
" gT tab
" gt tab
" <C-W> (h、j、k、l、<Left> )
" <C-W> + w
" <C-W> + s :split ,
" <C-W> + v :vsplit ,
" <C-W> + o :only ,
ラベル
Plug 'majutsushi/tagbar' " https://github.com/majutsushi/tagbar
nnoremap <F9> :TagbarToggle<CR>
inoremap <F9> <C-O>:TagbarToggle<CR>
自動補完
Plug 'Valloric/YouCompleteMe' " https://github.com/ycm-core/YouCompleteMe
Plug 'Raimondi/delimitMate' " https://github.com/Raimondi/delimitMate
nnoremap <Leader>fi :YcmCompleter FixIt<CR>
nnoremap <Leader>gd :YcmCompleter GoToDefinition<CR>
文法ハイライト
Plug 'sheerun/vim-polyglot' " https://github.com/sheerun/vim-polyglot
Plug 'w0rp/ale' " https://github.com/w0rp/ale
let g:ale_fix_on_save = 1
let g:ale_sign_column_always = 1
let g:ale_sign_error = '●'
let g:ale_sign_warning = '▶'
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
グローバル検索、ファイルを早く開く
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " https://github.com/junegunn/fzf
Plug 'junegunn/fzf.vim' " https://github.com/junegunn/fzf.vim
Plug 'ctrlpvim/ctrlp.vim' " https://github.com/ctrlpvim/ctrlp.vim
let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard']
let g:ctrlp_regexp = 1
" <c-r>:
" <c-t>: tab
" :Rg
ステータスバー
Plug 'vim-airline/vim-airline' " https://github.com/vim-airline/vim-airline
Plug 'vim-airline/vim-airline-themes' " https://github.com/vim-airline/vim-airline-themes
let g:airline_theme='onedark'
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:airline#extensions#ale#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline#extensions#nerdtree_statusline = 0
let g:airline_section_c = ''
コメント
Plug 'scrooloose/nerdcommenter' " https://github.com/preservim/nerdcommenter
let g:NERDSpaceDelims = 1
let g:NERDDefaultAlign = 'left'
" <leader>c<space> /
" <leader>ca // /* */
" <leader>cs /* */
" <leader>cm
" <leader>cA
git
Plug 'airblade/vim-gitgutter' " https://github.com/airblade/vim-gitgutter
Plug 'tpope/vim-fugitive' " https://github.com/tpope/vim-fugitive
Plug 'tpope/vim-rhubarb' " https://github.com/tpope/vim-rhubarb
set updatetime=100
let g:gitgutter_max_signs = -1
" jump to next hunk: ]c
" jump to previous hunk: [c
" stage the hunk: <Leader>hs
" undo the hunk: <Leader>hu
" preview the hunk: <Leader>hp
" :G
" :Gvdiffsplit
" :GBrowse
"
" s:
" u:
" =: diff
" cc:
Markdown
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } " https://github.com/iamcco/markdown-preview.nvim
" :MarkdownPreview
" :MarkdownPreviewStop
Emmet
Plug 'mattn/emmet-vim' " https://github.com/mattn/emmet-vim
let g:user_emmet_leader_key='<C-Z>'
" <C-Z>,
Pretier
Plug 'prettier/vim-prettier', { 'do': 'npm install' } " https://github.com/prettier/vim-prettier
autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync
" :PrettierAsync
Wakatime
Plug 'wakatime/vim-wakatime' " https://github.com/wakatime/vim-wakatime "
ホワイトパス
Plug 'ntpeters/vim-better-whitespace' " https://github.com/ntpeters/vim-better-whitespace
let g:better_whitespace_enabled=1
" :StripWhitespace
締め括りをつける最後に、to-vim-tmux-zsh倉庫を提出して参考にすることができます。名前の通り、vim以外にtmuxとzshの関連内容があります。
ここで、vimを私達の神器(結び目)にする方法について紹介します。もっと多くの関連vimは入門内容を使っています。私達の以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。