Dotfiles for my tiling window manager + terminal workflow.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

243 lines
7.0 KiB

{
"keyboard.dispatch": "keyCode",
// For the code editor
"editor.fontFamily": "'Hack', 'Droid Sans Mono', monospace",
"workbench.colorTheme": "GitHub Dark Default",
// For the integrated terminal
"terminal.integrated.fontFamily": "'Hack', monospace"
"vim.insertModeKeyBindings": [
{
"before": [
"<Esc>"
],
"after": [
"<Esc>"
],
"commands": [
"workbench.action.files.save"
]
}
],
// Optional: If you use the non-recursive version (recommended for most simple mappings):
"vim.insertModeKeyBindingsNonRecursive": [
{
"before": [
"<Esc>"
],
"after": [
"<Esc>"
],
"commands": [
"workbench.action.files.save"
]
}
],
"workbench.colorCustomizations": {
"[GitHub Dark]": {
// Activity Bar (Left side)
"activityBar.background": "#1f2428", // Keep dark to blend
"activityBar.activeBorder": "#f85149", // Bright GitHub Red
"activityBar.foreground": "#f85149",
"activityBar.inactiveForeground": "#6e7681",
// Status Bar (Bottom)
"statusBar.background": "#da3633", // Deep GitHub Red
"statusBar.foreground": "#ffffff",
// Title Bar & Tabs
"titleBar.activeBackground": "#1f2428",
"tab.activeBorderTop": "#f85149",
// Lists & Trees (File explorer highlights)
"list.activeSelectionForeground": "#f85149",
"textLink.foreground": "#f85149",
"progressBar.background": "#f85149"
}
},
// Vim
{
// --- General Editor Settings (matching 'set' commands) ---
"editor.lineNumbers": "relative", // set relativenumber
"vim.useSystemClipboard": true, // set clipboard+=unnamedplus
"editor.tabSize": 4, // set tabstop=4 shiftwidth=4
"editor.insertSpaces": true, // set expandtab
"editor.wordWrap": "wordWrapColumn", // set tw=60 (approximate behavior)
"editor.wordWrapColumn": 60,
"editor.cursorSurroundingLines": 5, // set linespace / scrolloff behavior
"files.autoSave": "afterDelay", // Replaces vim-auto-save plugin
"files.autoSaveDelay": 1000, // set updatetime=1000
// --- Vim Extension Configuration ---
"vim.leader": "<space>", // let mapleader="\<Space>"
"vim.hlsearch": true, // set hlsearch
"vim.timeout": 350, // set timeoutlen=350
// --- Key Rebinding (Core) ---
// Handle Ctrl key conflicts so Vim handles them, not VS Code
"vim.handleKeys": {
"<C-a>": false,
"<C-f>": false,
"<C-p>": false // Let VS Code handle Quick Open (like fzf)
},
// --- Core Editor Settings (from 'set' commands) ---
// set background=dark
// set relativenumber
"editor.lineNumbers": "relative",
// set expandtab
"editor.insertSpaces": true,
// set tabstop=4, set shiftwidth=4
"editor.tabSize": 4,
// set tw=60
"editor.wordWrap": "wordWrapColumn",
"editor.wordWrapColumn": 60,
// set nofixendofline (this is the opposite of VS Code's default, so we disable the default)
"files.insertFinalNewline": false,
// set mouse=a
"editor.mouseWheelZoom": true, // VS Code equivalent for mouse interaction
// --- Language-Specific Settings (from 'autocmd FileType...') ---
// autocmd FileType *css,...,typescriptreact,yaml set tabstop=2 shiftwidth=2
"[css]": {
"editor.tabSize": 2
},
"[scss]": {
"editor.tabSize": 2
},
"[html]": {
"editor.tabSize": 2
},
"[javascript]": {
"editor.tabSize": 2
},
"[javascriptreact]": {
"editor.tabSize": 2
},
"[json]": {
"editor.tabSize": 2
},
"[typescript]": {
"editor.tabSize": 2
},
"[typescriptreact]": {
"editor.tabSize": 2
},
"[yaml]": {
"editor.tabSize": 2
},
// autocmd FileType go set noexpandtab sw=4
"[go]": {
"editor.insertSpaces": false,
"editor.tabSize": 4
},
// autocmd Filetype markdown set textwidth=55, formatoptions=...
"[markdown]": {
"editor.wordWrap": "wordWrapColumn",
"editor.wordWrapColumn": 55,
// The rest of 'formatoptions' (like cjMqtvw) is handled by extensions/VSCodeVim
},
// autocmd Filetype groovy,Jenkinsfile,taskdata set tw=0
"[groovy]": {
"editor.wordWrap": "off"
},
"[jenkinsfile]": {
"editor.wordWrap": "off"
},
// --- VSCodeVim Settings (from 'vim.useSystemClipboard', 'let mapleader', 'nnoremap', etc.) ---
// set clipboard+=unnamedplus
"vim.useSystemClipboard": true,
// set hlsearch
"vim.hlsearch": true,
// set smartcase
"vim.smartcase": true,
// set timeoutlen=350
"vim.timeout": 350,
// set undofile
"vim.undofile": true,
// let mapleader="\<Space>"
"vim.leader": " ",
// nnoremap Q @@
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["Y"],
"after": ["y", "$"], // Changed from 'yy' to 'y$' which is more idiomatic Vim
"silent": true
},
{
"before": ["Q"],
"after": ["@", "@"], // Last macro
"silent": true
},
{
"before": [","],
"after": ["z", "a"], // Toggle fold
"silent": true
},
{
"before": ["'"],
"after": ["`"], // Jump to horizontal position for mark
"silent": true
},
// nnoremap <leader>d d$
{
"before": ["<leader>", "d"],
"after": ["d", "$"]
},
// nnoremap <leader>dl 0d$
{
"before": ["<leader>", "d", "l"],
"after": ["0", "d", "$"]
},
// nnoremap <leader>k <C-O> (Jump back)
{
"before": ["<leader>", "k"],
"after": ["<C-o>"]
},
// nnoremap <leader>j <C-I> (Jump forward)
{
"before": ["<leader>", "j"],
"after": ["<C-i>"]
},
// nnoremap <leader>sp :sp
{
"before": ["<leader>", "s", "p"],
"commands": [":split"]
},
// nnoremap <leader>vs :vs
{
"before": ["<leader>", "v", "s"],
"commands": [":vsplit"]
},
// nnoremap <leader>vv :vsp ~/.vimrc<CR> (Translated to open settings.json)
{
"before": ["<leader>", "v", "v"],
"commands": ["workbench.action.openSettingsJson"]
},
// nnoremap <leader>yo :Goyo<CR> (Translated to Zen Mode)
{
"before": ["<leader>", "y", "o"],
"commands": ["workbench.action.toggleZenMode"]
}
]
}