Skip to content

Instantly share code, notes, and snippets.

@ashnoa
Created January 11, 2024 16:47
Show Gist options
  • Save ashnoa/1f5cd6783f024d65742d893116d77ba6 to your computer and use it in GitHub Desktop.
Save ashnoa/1f5cd6783f024d65742d893116d77ba6 to your computer and use it in GitHub Desktop.
.vimrc_for_me
" カラー表示
syntax enable
colorscheme desert
" エンコーディング
set encoding=utf-8
scriptencoding utf-8
set fileencoding=utf-8 " 保存時の文字コード
set fileencodings=ucs-boms,utf-8,euc-jp,cp932 " 読み込み時の文字コードの自動判別. 左側が優先される
set fileformats=unix,dos,mac " 改行コードの自動判別. 左側が優先される
set ambiwidth=double " □や○文字が崩れる問題を解決
" タブ・インデント
let s:filetype_for_indents = expand("%:e")
if s:filetype_for_indents ==# 'py'
set expandtab " タブ入力を複数の空白入力に置き換える
set tabstop=4 " 画面上でタブ文字が占める幅
set softtabstop=4 " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅
set autoindent " 改行時に前の行のインデントを継続する
set smartindent " 改行時に前の行の構文をチェックし次の行のインデントを増減する
set shiftwidth=4 " smartindentで増減する幅
else
set expandtab " タブ入力を複数の空白入力に置き換える
set tabstop=2 " 画面上でタブ文字が占める幅
set softtabstop=2 " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅
set autoindent " 改行時に前の行のインデントを継続する
set smartindent " 改行時に前の行の構文をチェックし次の行のインデントを増減する
set shiftwidth=2 " smartindentで増減する幅
endif
" 文字列検索
set incsearch " インクリメンタルサーチ. 1文字入力毎に検索を行う
set ignorecase " 検索パターンに大文字小文字を区別しない
set smartcase " 検索パターンに大文字を含んでいたら大文字小文字を区別する
set hlsearch " 検索結果をハイライト
" ESCキー2度押しでハイライトの切り替え
nnoremap <silent><Esc><Esc> :<C-u>set nohlsearch!<CR>
" カーソル移動
set whichwrap=b,s,h,l,<,>,[,],~ " カーソルの左右移動で行末から次の行の行頭への移動が可能になる
set number " 行番号を表示
set cursorline " カーソルラインをハイライト
" 行が折り返し表示されていた場合、行単位ではなく表示行単位でカーソルを移動する
nnoremap j gj
nnoremap k gk
nnoremap <down> gj
nnoremap <up> gk
" バックスペースキーの有効化
set backspace=indent,eol,start
" パーレン・タグジャンプ
set showmatch " 括弧の対応関係を一瞬表示する
source $VIMRUNTIME/macros/matchit.vim " Vimの「%」を拡張する
" コマンド補完
set wildmenu " コマンドモードの補完
set history=5000 " 保存するコマンド履歴の数
" マウス有効化
if has('mouse')
set mouse=a
if has('mouse_sgr')
set ttymouse=sgr
elseif v:version > 703 || v:version is 703 && has('patch632')
set ttymouse=sgr
else
set ttymouse=xterm2
endif
endif
" ペースト設定
if &term =~ "xterm"
let &t_SI .= "\e[?2004h"
let &t_EI .= "\e[?2004l"
let &pastetoggle = "\e[201~"
function XTermPasteBegin(ret)
set paste
return a:ret
endfunction
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin("")
endif
" ヤンクした内容をクリップボードに共有
if has('clipboard')
set clipboard=unnamed
endif
" ショートカットキー
" ssで画面を水平分割
nnoremap ss :<C-u>split<CR>
" vsで画面を垂直分割
nnoremap vs :<C-u>vsplit<CR>
" スペース+tでtabnewを実行
nnoremap t :<C-u>tabnew<CR>
" スペース+Enterで下に空行を挿入
nnoremap <Space><CR> o<Esc>
" Leader 設定
let mapleader = "<Space>"
" Vueファイル中でシンタックスハイライトが効かなくなるのを防ぐ
autocmd FileType vue syntax sync fromstart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment