Compare commits
1 commit
0ceb29a55c
...
ef5ec33e4f
Author | SHA1 | Date | |
---|---|---|---|
ef5ec33e4f |
7 changed files with 131 additions and 156 deletions
|
@ -1,64 +0,0 @@
|
|||
" Load plugins
|
||||
filetype plugin indent on
|
||||
|
||||
" Search
|
||||
set ignorecase
|
||||
set smartcase
|
||||
|
||||
" Tab completion
|
||||
set wildmode=list:longest,full
|
||||
set wildignore=*.swp,*.o,*.so,*.exe,*.dll
|
||||
|
||||
" Tab settings
|
||||
set ts=2
|
||||
set sw=2
|
||||
set expandtab
|
||||
|
||||
" Hud
|
||||
set termguicolors
|
||||
syntax on
|
||||
"set colorcolumn=80
|
||||
set cursorline
|
||||
set fillchars=vert:\│
|
||||
set hidden
|
||||
set list
|
||||
set listchars=tab:»·,trail:·
|
||||
set nofoldenable
|
||||
set nowrap
|
||||
set number
|
||||
set relativenumber
|
||||
set ruler
|
||||
set scrolloff=3
|
||||
|
||||
" Tags
|
||||
set tags=./tags;/,tags;/
|
||||
|
||||
" Backup Directories
|
||||
set backupdir=~/.config/nvim/backups,.
|
||||
set directory=~/.config/nvim/swaps,.
|
||||
if exists('&undodir')
|
||||
set undodir=~/.config/nvim/undo,.
|
||||
endif
|
||||
|
||||
let mapleader=','
|
||||
let maplocalleader=','
|
||||
|
||||
" Jump key
|
||||
nnoremap ` '
|
||||
nnoremap ' `
|
||||
|
||||
" Change pane
|
||||
nnoremap <C-h> <C-w>h
|
||||
nnoremap <C-j> <C-w>j
|
||||
nnoremap <C-k> <C-w>k
|
||||
nnoremap <C-l> <C-w>l
|
||||
|
||||
" Turn off search highlight
|
||||
nnoremap <localleader>/ :nohlsearch<CR>
|
||||
|
||||
" Trim trailing whitespace
|
||||
nnoremap <localleader>tw m`:%s/\s\+$//e<CR>:nohlsearch<CR>``
|
||||
|
||||
" Fancy macros
|
||||
nnoremap Q @q
|
||||
vnoremap Q :norm @q<cr>
|
|
@ -1,64 +0,0 @@
|
|||
-- Load .vimrc
|
||||
vim.cmd([[runtime .vimrc]])
|
||||
|
||||
vim.g.root_spec = { { ".git", ".jj", "lua" }, "lsp", "cwd" }
|
||||
|
||||
vim.o.autochdir = true
|
||||
vim.o.fillchars = "stl: ,stlnc: ,eob:░"
|
||||
vim.o.list = false
|
||||
vim.o.scrolloff = 7
|
||||
vim.o.splitkeep = "screen"
|
||||
vim.o.updatetime = 50
|
||||
vim.o.timeout = true
|
||||
vim.o.timeoutlen = 10
|
||||
|
||||
-- Neovim specific settings
|
||||
vim.o.icm = "split"
|
||||
-- vim.o.cia = 'kind,abbr,menu' wait for nightly to drop
|
||||
vim.o.foldtext = "v:lua.vim.treesitter.foldtext()"
|
||||
|
||||
vim.opt.foldmethod = "expr"
|
||||
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
|
||||
vim.o.showmode = false
|
||||
|
||||
-- Use rg
|
||||
vim.o.grepprg = [[rg --glob "!.git" --no-heading --vimgrep --follow $*]]
|
||||
vim.opt.grepformat = vim.opt.grepformat ^ { "%f:%l:%c:%m" }
|
||||
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignError",
|
||||
{ text = "", hl = "DiagnosticSignError", texthl = "DiagnosticSignError", culhl = "DiagnosticSignErrorLine" }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignWarn",
|
||||
{ text = "", hl = "DiagnosticSignWarn", texthl = "DiagnosticSignWarn", culhl = "DiagnosticSignWarnLine" }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignInfo",
|
||||
{ text = "", hl = "DiagnosticSignInfo", texthl = "DiagnosticSignInfo", culhl = "DiagnosticSignInfoLine" }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignHint",
|
||||
{ text = "", hl = "DiagnosticSignHint", texthl = "DiagnosticSignHint", culhl = "DiagnosticSignHintLine" }
|
||||
)
|
||||
|
||||
-- Make <Tab> work for snippets
|
||||
vim.keymap.set({ "i", "s" }, "<Tab>", function()
|
||||
if vim.snippet.active({ direction = 1 }) then
|
||||
return "<cmd>lua vim.snippet.jump(1)<cr>"
|
||||
else
|
||||
return "<Tab>"
|
||||
end
|
||||
end, { expr = true })
|
||||
|
||||
-- Covenience macros
|
||||
-- fix ellipsis: "..." -> "…"
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>fe",
|
||||
"mc:%s,\\.\\.\\.,…,g<CR>:nohlsearch<CR>`c",
|
||||
{ noremap = true, silent = true, desc = "... -> …" }
|
||||
)
|
||||
-- fix spelling: just an easier finger roll on 40% keyboard
|
||||
vim.keymap.set("n", "<leader>fs", "1z=", { noremap = true, silent = true, desc = "Fix spelling under cursor" })
|
20
flake.lock
generated
20
flake.lock
generated
|
@ -29,11 +29,11 @@
|
|||
"zig": "zig"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730568249,
|
||||
"narHash": "sha256-+yyQ2ORHK61Q69mu9/fILlHmrPd3Es8zUTnqlwiMy3o=",
|
||||
"lastModified": 1730688195,
|
||||
"narHash": "sha256-wXK1/gOImxv0vHpUc9qgno1AY8c64j17/UFIiT7zH1g=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "d47df211b03894427592851b0be3b528ff8221ff",
|
||||
"revCount": 7864,
|
||||
"rev": "737dc0896dc266a98c889e122b5c900636e589c9",
|
||||
"revCount": 7874,
|
||||
"type": "git",
|
||||
"url": "ssh://git@github.com/ghostty-org/ghostty"
|
||||
},
|
||||
|
@ -64,11 +64,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730490306,
|
||||
"narHash": "sha256-AvCVDswOUM9D368HxYD25RsSKp+5o0L0/JHADjLoD38=",
|
||||
"lastModified": 1730633670,
|
||||
"narHash": "sha256-ZFJqIXpvVKvzOVFKWNRDyIyAo+GYdmEPaYi1bZB6uf0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "1743615b61c7285976f85b303a36cdf88a556503",
|
||||
"rev": "8f6ca7855d409aeebe2a582c6fd6b6a8d0bf5661",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -79,11 +79,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1730200266,
|
||||
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
|
||||
"lastModified": 1730531603,
|
||||
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
|
||||
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -1,11 +1,5 @@
|
|||
{ lib, pkgs, ... }:
|
||||
{
|
||||
home.file.".config/nvim/.vimrc".source = ../../../files/config/nvim/.vimrc;
|
||||
|
||||
home.activation.mkdirNvimFolders = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
mkdir -p $HOME/.config/nvim/backups $HOME/.config/nvim/swaps $HOME/.config/nvim/undo
|
||||
'';
|
||||
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
@ -15,7 +9,7 @@
|
|||
withPython3 = false;
|
||||
withRuby = false;
|
||||
|
||||
extraLuaConfig = lib.fileContents ../../../files/config/nvim/init.lua;
|
||||
extraLuaConfig = lib.fileContents ./init.lua;
|
||||
extraPackages = with pkgs; [
|
||||
black
|
||||
go
|
||||
|
@ -121,5 +115,4 @@
|
|||
}
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
93
home/common/nvim/init.lua
Normal file
93
home/common/nvim/init.lua
Normal file
|
@ -0,0 +1,93 @@
|
|||
-- vim.g.mapleader = "<space>"
|
||||
vim.g.maplocalleader = ','
|
||||
|
||||
-- UI
|
||||
|
||||
vim.opt.cursorline = true
|
||||
vim.opt.laststatus = 0
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.ruler = true
|
||||
vim.opt.rulerformat = "" -- FIXME: fancify!
|
||||
vim.opt.rulerformat = "%36(%5l,%-6(%c%V%) %t%)%*"
|
||||
vim.opt.syntax = "on"
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
-- Search
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
|
||||
-- Tab completion
|
||||
-- vim.opt.wildmode="list:longest,full"
|
||||
vim.opt.wildignore="*.swp,*.o,*.so,*.exe,*.dll"
|
||||
|
||||
-- Whitespaces
|
||||
vim.opt.breakindent = true
|
||||
vim.opt.copyindent = true
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.shiftround = true
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.smartindent = true
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.wrap = false
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars="tab:»·,trail:·"
|
||||
|
||||
-- Folds
|
||||
vim.opt.foldenable = false
|
||||
vim.opt.foldtext = "v:lua.vim.treesitter.foldtext()"
|
||||
vim.opt.foldmethod = "expr"
|
||||
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
|
||||
--
|
||||
|
||||
vim.o.autochdir = true
|
||||
vim.o.fillchars = "stl: ,stlnc: ,eob:░,vert:│"
|
||||
vim.o.list = false
|
||||
vim.o.scrolloff = 7
|
||||
vim.o.splitkeep = "screen"
|
||||
vim.o.updatetime = 50
|
||||
vim.o.timeout = true
|
||||
vim.o.timeoutlen = 10
|
||||
vim.o.icm = "split"
|
||||
-- vim.o.cia = 'kind,abbr,menu' wait for nightly to drop
|
||||
|
||||
vim.o.showmode = false
|
||||
|
||||
|
||||
-- Use rg
|
||||
vim.o.grepprg = [[rg --glob "!.jj" --glob "!.git" --no-heading --vimgrep --follow $*]]
|
||||
vim.opt.grepformat = vim.opt.grepformat ^ { "%f:%l:%c:%m" }
|
||||
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignError",
|
||||
{ text = "", hl = "DiagnosticSignError", texthl = "DiagnosticSignError", culhl = "DiagnosticSignErrorLine" }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignWarn",
|
||||
{ text = "", hl = "DiagnosticSignWarn", texthl = "DiagnosticSignWarn", culhl = "DiagnosticSignWarnLine" }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignInfo",
|
||||
{ text = "", hl = "DiagnosticSignInfo", texthl = "DiagnosticSignInfo", culhl = "DiagnosticSignInfoLine" }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
"DiagnosticSignHint",
|
||||
{ text = "", hl = "DiagnosticSignHint", texthl = "DiagnosticSignHint", culhl = "DiagnosticSignHintLine" }
|
||||
)
|
||||
|
||||
-- Make <Tab> work for snippets
|
||||
vim.keymap.set({ "i", "s" }, "<Tab>", function()
|
||||
if vim.snippet.active({ direction = 1 }) then
|
||||
return "<cmd>lua vim.snippet.jump(1)<cr>"
|
||||
else
|
||||
return "<Tab>"
|
||||
end
|
||||
end, { expr = true })
|
||||
|
||||
vim.keymap.set({ "n" }, "<c-/>", "gcc", { remap = true })
|
||||
vim.keymap.set({ "v" }, "<c-/>", "gc", { remap = true })
|
||||
vim.keymap.set({ "n" }, "<c-_>", "gcc", { remap = true })
|
||||
vim.keymap.set({ "v" }, "<c-_>", "gc", { remap = true })
|
||||
vim.keymap.set("n", "zz", "zt", { remap = true })
|
|
@ -9,8 +9,8 @@
|
|||
require('mini.extra').setup()
|
||||
require('mini.icons').setup()
|
||||
require('mini.jump').setup()
|
||||
require('mini.pairs').setup()
|
||||
require('mini.statusline').setup()
|
||||
-- require('mini.pairs').setup()
|
||||
-- require('mini.statusline').setup()
|
||||
require('mini.surround').setup()
|
||||
require('mini.splitjoin').setup()
|
||||
|
||||
|
@ -43,20 +43,35 @@
|
|||
}
|
||||
})
|
||||
|
||||
require('mini.pick').setup()
|
||||
require('mini.pick').setup({
|
||||
mappings = {
|
||||
move_down = '<tab>'
|
||||
},
|
||||
options = {
|
||||
use_cache = true
|
||||
}
|
||||
})
|
||||
MiniPick.registry.files_root = function(local_opts)
|
||||
local root_patterns = { ".jj" }
|
||||
local root_patterns = { ".jj", ".git" }
|
||||
local root_dir = vim.fs.dirname(vim.fs.find(root_patterns, { upward = true })[1])
|
||||
local opts = { source = { cwd = root_dir } }
|
||||
local_opts.cwd = root_dir -- nil?
|
||||
local opts = { source = { cwd = root_dir, tool = "rg" } }
|
||||
local_opts.cwd = root_dir
|
||||
return MiniPick.builtin.files(local_opts, opts)
|
||||
end
|
||||
vim.keymap.set('n', '<space>/', "<cmd>Pick grep_live<cr>", opts("Live Grep"))
|
||||
vim.keymap.set('n', '<space>F', "<cmd>Pick files tool='git'<cr>", opts("Find Files in CWD"))
|
||||
vim.keymap.set('n', '<space>ff', "<cmd>Pick files<cr>", opts("Find Files"))
|
||||
MiniPick.registry.grep_live_root = function(local_opts)
|
||||
local root_patterns = { ".jj", ".git" }
|
||||
local root_dir = vim.fs.dirname(vim.fs.find(root_patterns, { upward = true })[1])
|
||||
local opts = { source = { cwd = root_dir } }
|
||||
local_opts.cwd = root_dir
|
||||
return MiniPick.builtin.grep_live(local_opts, opts)
|
||||
end
|
||||
vim.keymap.set('n', '<space>/', "<cmd>Pick grep_live_root<cr>", opts("Live Grep"))
|
||||
vim.keymap.set('n', '<space>F', "<cmd>Pick files<cr>", opts("Find Files in CWD"))
|
||||
vim.keymap.set('n', '<space>ff', "<cmd>Pick files_root<cr>", opts("Find Files"))
|
||||
vim.keymap.set('n', '<space>fr', "<cmd>Pick oldfiles<cr>", opts("Recent Files"))
|
||||
vim.keymap.set('n', '<space>b', "<cmd>Pick buffers<cr>", opts("Buffers"))
|
||||
vim.keymap.set('n', '<tab>', "<cmd>Pick buffers<cr>", opts("Buffers"))
|
||||
vim.keymap.set('n', '<space>d', "<cmd>Pick diagnostics<cr>", opts("Diagnostics"))
|
||||
vim.keymap.set('n', '<tab>', "<cmd>Pick buffers include_current=false<cr>", opts("Buffers"))
|
||||
vim.keymap.set('n', "<space>'", "<cmd>Pick resume<cr>", opts("Last Picker"))
|
||||
vim.keymap.set('n', "<space>g", "<cmd>Pick git_commits<cr>", opts("Git Commits"))
|
||||
|
||||
|
|
|
@ -55,6 +55,8 @@
|
|||
arguments = [
|
||||
"--glob=!.git/*"
|
||||
"--glob=!.jj/*"
|
||||
"--glob=!result/*"
|
||||
"--glob=!target/*"
|
||||
];
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue