更新日:2025-10-26
Vimに関する設定
VimとNeoVimに関する設定の覚書です。
Vimの.vimrc
.vimrcは%USERPROFILE%に存在します。PowerShellだと$HOME。小文字の$homeでも可。
" 書き込む文字コード
set fileencoding=utf-8
" 読み込む文字コード: この場合UTF-8を試し、だめならShift_JIS
set fileencodings=utf-8,cp932
" 行番号表示
set number
" 不可視文字の視覚化
set list
set listchars=tab:>-,trail:_,eol:$
" タブをスペースにする
set expandtab
" オートインデント
set autoindent
" タブをスペース4つ分にする
set tabstop=4
" Tabキーで挿入するスペースの数(数値)
set softtabstop=4
" シフトをスペース4つ分にする
set shiftwidth=4
" 挿入モードでバックスペースが効かない対策
set backspace=indent,eol,start
" ggで先頭行の先頭位置へ移動
set startofline
" シンタックスハイライト
syntax on
Neovimのinit.lua
init.luaを作成すべき場所は以下です。
%USERPROFILE%\AppData\Local\nvim
PowerShellでは以下の表記になります。$homeでも可。
$HOME\AppData\Local\nvim
以下がファイルの本文です。ただし、nvimのシェルとしてpwshを利用する想定です。
-- 内部処理の文字コード
vim.opt.encoding = "utf-8"
-- ファイル保存時の文字コード
vim.opt.fileencoding = "utf-8"
-- 読み込み時に試す文字コードの順序
vim.opt.fileencodings = { "utf-8", "cp932" }
-- 行番号表示
vim.opt.number = true
-- 不可視文字の視覚化
vim.opt.list = true
vim.opt.listchars = { tab = ">-", trail = "_", nbsp = "+", eol = "$" }
-- タブをスペースにする
vim.opt.expandtab = true
-- スマートインデント
vim.opt.smartindent = true
-- タブをスペース4つ分にする
vim.opt.tabstop = 4
-- Tabキーで挿入するスペースの数
vim.opt.softtabstop = 4
-- シフトをスペース4つ分にする
vim.opt.shiftwidth = 4
-- ggで先頭行の先頭位置へ移動
vim.opt.startofline = true
-- shellをPowerShell(pwsh)に変更
vim.opt.shell = "pwsh"
-- pwsh: オプションとpwshの設定(文字コードと色なしの設定)
vim.opt.shellcmdflag = "-NoLogo " ..
"-NoProfile " ..
"-ExecutionPolicy RemoteSigned " ..
"-Command " ..
"[Console]::InputEncoding = [System.Text.Encoding]::UTF8;" ..
"[Console]::OutputEncoding = [System.Text.Encoding]::UTF8;" ..
"$PSStyle.OutputRendering = [System.Management.Automation.OutputRendering]::PlainText;"
-- pwsh: コマンド全体を囲む引用符
vim.opt.shellquote = ""
-- pwsh: 引数展開時の引用符
vim.opt.shellxquote = ""
-- pwsh: リダイレクトの設定
vim.opt.shellredir = "2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode"
-- pwsh: パイプの設定
vim.opt.shellpipe = "2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode"