Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ bash -c "$(curl https://raw.githubusercontent.com/nomutin/dotfiles/master/script
| Shell | [bash](https://www.gnu.org/software/bash/) | [📂](./config/bashrc) | Built-in to most platforms |
| CLI Manager | [mise](https://mise.jdx.dev/) | [📂](./xdg_config/mise/config.toml) | Config editing required |
| GUI Manager | [Homebrew-cask](https://brew.sh) | [📂](./config/Brewfile) | For macOS apps |
| Terminal Multiplexer | [zellij](https://zellij.dev) | [📂](./xdg_config/zellij/config.kdl) | Installed via mise |
| Text Editor | [vim](https://www.vim.org) / [neovim](https://neovim.io) | [📁](./config/vimrc) | Shared settings<br>Manual install required |
| Terminal Multiplexer | [GNU Screen](https://www.gnu.org/software/screen/) | [📂](./xdg_config/screen/screenrc) | Built-in to most platforms |
| Text Editor | [vim](https://www.vim.org) | [📁](./config/vimrc) | Shared settings<br>Manual install required |

## 🗑️ Configs no longer used

Expand All @@ -32,3 +32,4 @@ bash -c "$(curl https://raw.githubusercontent.com/nomutin/dotfiles/master/script
| Neovim | [🔗](https://gist.github.com/nomutin/512f27a7b8bf8969a43d9ff0483938da) | Less portable than vim |
| Alacritty | [🔗](https://gist.github.com/nomutin/6f7640e77576ef585c9fb7dc15ff9f13) | `Terminal.app` is sufficient in MacOS Tahoe |
| Ghostty | [🔗](https://gist.github.com/nomutin/b626b919d8dcabdff6da39e342a8f16a) | `Terminal.app` is sufficient in MacOS Tahoe |
| Zellij | [🔗](https://gist.github.com/nomutin/ddf64ec5602727f43d81357648adb189) | `screen` is sufficient for me |
2 changes: 2 additions & 0 deletions config/bashrc
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@ export XDG_STATE_HOME="$HOME/.local/state"

mkdir -p "${XDG_STATE_HOME}"/bash
export DOTNET_CLI_HOME="$XDG_DATA_HOME"/dotnet
export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
export HISTFILE="$XDG_STATE_HOME"/bash/history
export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
export LESSHISTFILE="$XDG_STATE_HOME"/less/history
export TERMINFO="$XDG_DATA_HOME"/terminfo
export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo
export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc

# ===== Aliases =====
alias ls='ls --color=auto'
Expand Down
120 changes: 47 additions & 73 deletions config/vimrc
Original file line number Diff line number Diff line change
@@ -1,42 +1,31 @@
" >>> curl -s https://raw.githubusercontent.com/nomutin/dotfiles/master/config/vimrc -o ~/.vimrc

" ===== Builtin =====
set encoding=utf-8 " options: 24
scriptencoding utf-8
set runtimepath^=~/.vim runtimepath+=~/.vim/after " 1
set incsearch ignorecase smartcase " 2
set nowrap list listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+ scrolloff=4 number" 4
set hlsearch cursorline " 5
set hidden " 6
set shortmess=filnxtToO ruler " 11
set clipboard=unnamed "12
set undofile undodir=~/.vim/undo completeopt=menuone,noinsert,noselect pumheight=10 | call mkdir($HOME.'/.vim/undo', 'p') " 13
set tabstop=4 shiftwidth=4 expandtab " 14
set autoread " 18
set noswapfile " 19
set wildmenu " 20
set viminfo= " 25
aug qf_wrap | au! | autocmd FileType qf setl wrap nonu nornu | aug END
if has('vim_starting') | let &t_SI .= "\e[6 q" | let &t_EI .= "\e[2 q" | let &t_SR .= "\e[4 q" | endif
let g:netrw_banner = 0 | let g:netrw_liststyle = 3 | let g:netrw_altv = 1 | let g:netrw_winsize = -28
set encoding=utf-8
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim

" ===== KeyMappings =====
let g:mapleader = "\<space>"
inoremap <silent> jk <Esc>
nnoremap <ESC><ESC> <CMD>nohlsearch<CR>
nnoremap <Leader>d <CMD>new<BAR>exec 'read !git show HEAD:#'<BAR>setl bt=nofile ro<BAR>difft<BAR>winc p<BAR>difft<CR>
nnoremap <Leader>n <CMD>Lex<CR>
function! OpenTerm()
if len(term_list()) | exec 'bo sb' term_list()[0] | exec 'normal i' | else | exec 'bo term' | endif
endfunction
nnoremap <silent> <C-j> <CMD>call OpenTerm()<CR>
tnoremap <silent> <C-j> <C-\><C-n><CMD>b#<BAR>close<CR>
set autoread
set background=dark
set clipboard=unnamed
set completeopt=menuone,noinsert,noselect pumheight=10
set cursorline
set expandtab tabstop=4 shiftwidth=4
set hidden
set incsearch ignorecase smartcase hlsearch
set list listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+
set runtimepath^=~/.vim
set undofile undodir=~/.vim/undo | call mkdir($HOME.'/.vim/undo', 'p')
set viminfo=

highlight LineNr ctermfg=darkgray
highlight Comment ctermfg=darkgray
highlight CursorLineNr ctermfg=cyan cterm=bold gui=NONE
highlight Pmenu ctermfg=white ctermbg=black

" ===== ColorScheme =====
hi LineNr ctermfg=gray
hi CursorLineNr ctermfg=cyan cterm=bold gui=NONE
hi CursorLine cterm=none ctermbg=237
hi Pmenu ctermfg=white ctermbg=black
inoremap <silent> jk <Esc>
nnoremap <C-l> <CMD>nohlsearch<CR><Esc>
nnoremap <space>d <CMD>new<BAR>exec 'read !git show HEAD:#'<BAR>setl bt=nofile ro<BAR>difft<BAR>winc p<BAR>difft<CR>

" ===== Plugin =====
if empty(glob('~/.vim/plugged'))
Expand All @@ -47,44 +36,29 @@ endif
call plug#begin('~/.vim/plugged')
Plug 'tpope/vim-commentary'
Plug 'preservim/nerdtree'
nnoremap <Leader>n <CMD>NERDTreeToggle<CR>
Plug 'ctrlpvim/ctrlp.vim'
let g:ctrlp_map = '<Leader>f'
Plug 'ap/vim-buftabline'
hi BufTabLineFill ctermfg=gray ctermbg=black
hi BufTabLineHidden ctermfg=gray ctermbg=black
nnoremap <silent> <C-h> <CMD>bprev<CR>
nnoremap <silent> <C-l> <CMD>bnext<CR>
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
let g:lsp_use_native_client = 1
let g:lsp_document_code_action_signs_enabled = 0
let g:lsp_diagnostics_virtual_text_enabled = 0
let g:lsp_diagnostics_echo_cursor = 1
let g:lsp_diagnostics_echo_delay = 100
let g:lsp_settings_enable_suggestions = 0
let g:lsp_async_completion = 1
function! LSPSetup() abort
setlocal omnifunc=lsp#complete
setlocal signcolumn=yes
nnoremap <C-]> <plug>(lsp-definition)
nnoremap <C-W>] <CMD>leftabove LspDefinition<CR>
nnoremap grn <plug>(lsp-rename)
nnoremap grr <plug>(lsp-references)
nnoremap K <plug>(lsp-hover)
nnoremap <Leader>e <plug>(lsp-document-diagnostics)
nnoremap <buffer> [d <plug>(lsp-previous-diagnostic)
nnoremap <buffer> ]d <plug>(lsp-next-diagnostic)
let l:capabilities = lsp#get_server_capabilities('ruff')
if !empty(l:capabilities)
let l:capabilities.hoverProvider = v:false
endif
endfunction
aug lsp_install | au! | au User lsp_buffer_enabled cal LSPSetup() | aug END
if executable('ruff')
au user lsp_setup call lsp#register_server({'name': 'ruff', 'cmd': {server_info->['ruff', 'server']}, 'allowlist': ['python']} )
endif
nnoremap <space>n <CMD>NERDTreeToggle<CR>
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --follow --glob "!.git/*"'
nnoremap <space>f <CMD>Files<CR>
nnoremap <space>/ <CMD>Rg<CR>
Plug 'natebosch/vim-lsc'
nnoremap <space>e <CMD>LSClientAllDiagnostics<CR>
inoremap <C-S> <CMD>LSClientSignatureHelp<CR>
let g:lsc_auto_map = {'defaults': v:true, 'FindReferences': 'grr', 'Rename': 'grn'}
let g:lsc_server_commands = {
\ 'css': 'vscode-css-language-server --stdio',
\ 'html': 'vscode-html-language-serve --stdio',
\ 'javascript': 'typescript-language-server --stdio',
\ 'json': 'vscode-json-language-server --stdio',
\ 'python': 'pyright-langserver --stdio',
\ 'sh': 'bash-language-server start',
\ 'toml': 'taplo lsp stdio',
\ 'typescript': 'typescript-language-server --stdio',
\ 'typescriptreact': 'typescript-language-server --stdio',
\ 'vim': 'vim-language-server --stdio',
\ 'yaml': 'yaml-language-server --stdio',
\}
Plug 'github/copilot.vim'
highlight link CopilotSuggestion Comment
call plug#end()
3 changes: 1 addition & 2 deletions xdg_config/mise/config.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[tools]
# bat = "latest"
# bun = "latest"
# "ubi:fastfetch-cli/fastfetch" = "latest"
# "npm:@google/gemini-cli" = "latest"
Expand All @@ -7,10 +8,8 @@
# uv = "latest"
# vim = "latest"
# ripgrep = "latest"
# zellij = "latest"

# LSP
# "npm:@astrojs/language-server" = "latest"
# "npm:bash-language-server" = "latest"
# lua-language-server = "latest"
# "ubi:tamasfe/taplo" = "latest"
Expand Down
16 changes: 16 additions & 0 deletions xdg_config/screen/screenrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
defutf8 on
defencoding utf8
encoding utf8 utf8

startup_message off
vbell off

term xterm-256color

defscrollback 10000
hardstatus alwayslastline "%{= cd} %-w%{= wk} %n %t* %{-}%+w"
altscreen on

escape ^Bb
bind s split
# bind v split -v
Loading