vscode でも vimrc について設定することが可能なためにその方法をご説明します。
ついでに settings.json でサポートされている設定内容についても載せます
目次
VSCode vim で vimrc を有効にする
ctrl+shift+p にて、VSCode のアクションメニューを開く。
Preference: Open Settings(UI)
を開く
設定の検索バーに「vimrc」と検索し、「Vim Vimrc:Enable」のチェックボックスを有効化し、Vimrc のパスを入力する。
パスの内容は vim の vimrc のパスでも良いですし、neovim の init.vim でも問題ないなく動きます。
設定後、再度 ctrl+shift+p で VSCode のアクションメニューを開き、「Vim:Edit .vimrc」を実施し、設定したパスの設定ファイルが開けば設定完了です。
vimrc 設定内容
では vimrc の内容で何が有効されるかということなんですけど、まだプラグイン系は動かないようです。
公式にも書かれている通り、remap 系などは動きます。
inoremap jj
" shiftで移動を楽にする
noremap ^
noremap }
noremap {
noremap $
"表示行単位で移動する
nnoremap j gj
nnoremap k gk
vimrc に期待したい、今 settings.json でサポートされている設定
VSCode の settings.json にてサポートされている設定は以下になります。
以下の内容が初期設定の内容になります。
useSystemClipboard = false;
useCtrlKeys = false;
overrideCopy = true;
textwidth = 80;
hlsearch = false;
ignorecase = true;
smartcase = true;
autoindent = true;
joinspaces = true;
camelCaseMotion = {
enable: false,
};
replaceWithRegister = false;
smartRelativeLine = false;
sneak = false;
sneakUseIgnorecaseAndSmartcase = false;
sneakReplacesF = false;
surround = false;
argumentObjectSeparators = [','];
argumentObjectOpeningDelimiters = ['(', '['];
argumentObjectClosingDelimiters = [')', ']'];
easymotion = false;
easymotionMarkerBackgroundColor = '#0000';
easymotionMarkerForegroundColorOneChar = '#ff0000';
easymotionMarkerForegroundColorTwoCharFirst = '#ffb400';
easymotionMarkerForegroundColorTwoCharSecond = '#b98300';
easymotionIncSearchForegroundColor = '#7fbf00';
easymotionDimColor = '#777777';
easymotionDimBackground = true;
easymotionMarkerFontWeight = 'bold';
easymotionKeys = 'hklyuiopnm,qwertzxcvbasdgjf;';
targets: ITargetsConfiguration = {
enable: false,
bracketObjects: {
enable: true,
},
smartQuotes: {
enable: false,
breakThroughLines: true,
aIncludesSurroundingSpaces: true,
},
};
autoSwitchInputMethod = {
enable: false,
defaultIM: '',
switchIMCmd: '',
obtainIMCmd: '',
};
timeout = 1000;
maxmapdepth = 1000;
showcmd = true;
showmodename = true;
leader = '//';
history = 50;
incsearch = true;
inccommand = '' as const;
startInInsertMode = false;
statusBarColorControl = false;
statusBarColors: IModeSpecificStrings<string | string[]> = {
normal: ['#8FBCBB', '#434C5E'],
insert: '#BF616A',
visual: '#B48EAD',
visualline: '#B48EAD',
visualblock: '#A3BE8C',
replace: '#D08770',
};
debug: IDebugConfiguration = {
silent: false,
loggingLevelForAlert: 'error',
loggingLevelForConsole: 'warn',
};
searchHighlightColor = 'rgba(150, 150, 255, 0.3)';
searchHighlightTextColor = '';
searchMatchColor = 'rgba(255, 150, 150, 0.3)';
searchMatchTextColor = '';
substitutionColor = 'rgba(100, 255, 150, 0.3)';
substitutionTextColor = '';
highlightedyank: IHighlightedYankConfiguration = {
enable: false,
color: 'rgba(250, 240, 170, 0.5)',
textColor: '',
duration: 200,
};
tabstop = 2;
editorCursorStyle = vscode.TextEditorCursorStyle.Line;
expandtab = true;
number = true;
relativenumber = false;
iskeyword = '/\\()"\':,.;<>~!@#$%^&*|+=[]{}`?-';
matchpairs = '(:),{:},[:]';
visualstar = false;
mouseSelectionGoesIntoVisualMode = true;
changeWordIncludesWhitespace = false;
foldfix = false;
disableExtension = false;
enableNeovim = false;
gdefault = false;
substituteGlobalFlag = false; // Deprecated in favor of gdefault
neovimPath = 'nvim';
neovimUseConfigFile = false;
neovimConfigPath = '';
vimrc = {
enable: false,
path: '',
};
cursorStylePerMode: IModeSpecificStrings<string> = {
normal: 'line',
insert: 'block',
visual: 'underline',
visualline: 'line-thin',
visualblock: 'block-outline',
replace: 'underline-thin,',
};
insertModeKeyBindings: IKeyRemapping[] = [];
insertModeKeyBindingsNonRecursive: IKeyRemapping[] = [];
normalModeKeyBindings: IKeyRemapping[] = [];
normalModeKeyBindingsNonRecursive: IKeyRemapping[] = [];
operatorPendingModeKeyBindings: IKeyRemapping[] = [];
operatorPendingModeKeyBindingsNonRecursive: IKeyRemapping[] = [];
visualModeKeyBindings: IKeyRemapping[] = [];
visualModeKeyBindingsNonRecursive: IKeyRemapping[] = [];
commandLineModeKeyBindings: IKeyRemapping[] = [];
commandLineModeKeyBindingsNonRecursive: IKeyRemapping[] = [];
insertModeKeyBindingsMap: Map<string, IKeyRemapping> = new Map();
normalModeKeyBindingsMap: Map<string, IKeyRemapping> = new Map();
operatorPendingModeKeyBindingsMap: Map<string, IKeyRemapping> = new Map();
visualModeKeyBindingsMap: Map<string, IKeyRemapping> = new Map();
commandLineModeKeyBindingsMap: Map<string, IKeyRemapping> = new Map();
whichwrap = 'b,s';
wrapKeys = {};
report = 2;
digraphs = {};
wrapscan = true;
scroll = 20;
startofline = true;
showMarksInGutter = true;
shell = '';
コメント