VSCode vim で vimrc を使用する方法

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 = '';
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

数学科出身のSoftware Engineer
情報通信が好きなのでブログを活用して発信しています。

コメント

コメントする

目次
閉じる