さといもちゃんのホームページ


更新日: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"