├── .gitignore ├── LICENSE ├── README.md ├── ghostty └── config ├── karabiner ├── assets │ └── complex_modifications │ │ └── 1735573186.json └── karabiner.json ├── nvim ├── init.lua └── lua │ ├── autocmd.lua │ ├── keymaps.lua │ ├── lsp │ ├── bash.lua │ ├── init.lua │ ├── javascript.lua │ ├── json.lua │ ├── lua.lua │ └── python.lua │ ├── plugins │ ├── ai.lua │ ├── blink.lua │ ├── coding.lua │ ├── colors.lua │ ├── format.lua │ ├── git.lua │ ├── noice.lua │ ├── snacks.lua │ ├── treesitter.lua │ └── ui.lua │ └── settings.lua ├── tmux ├── tmux.conf └── tmux.sh └── zsh ├── .gitignore ├── .zcompcache └── composer-pkgs ├── .zcompdump ├── .zprofile ├── .zsh_history ├── .zshrc ├── alias.sh ├── edit.sh ├── fre_fd.sh ├── functions.sh ├── fzf.sh ├── init.sh ├── old_files.sh └── path.sh /.gitignore: -------------------------------------------------------------------------------- 1 | /* 2 | /*/ 3 | !/nvim/ 4 | !/zsh/ 5 | !/karabiner/ 6 | /karabiner/automatic_backups 7 | !/ghostty/ 8 | !/tmux/ 9 | !/alacritty/ 10 | !README.md 11 | !./starship.toml 12 | */*.DS_Store 13 | /nvim/startuptime.log 14 | /karabiner/automatic_backups/ 15 | .DS_Store 16 | /nvim/lazy-lock.json 17 | ./zsh/.zsh_sessions/ 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Song Wang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dotfiles 2 | 3 | Casper Wang's coding setup. 4 | 5 | Feel free to snap a piece :) 6 | -------------------------------------------------------------------------------- /ghostty/config: -------------------------------------------------------------------------------- 1 | command = zsh --login -c "if command -v tmux >/dev/null 2>&1; then tmux attach || tmux; else zsh; fi" 2 | 3 | font-family = "VictorMono Nerd Font Mono" 4 | font-family-italic = "RobotoMono Nerd Font Mono" 5 | font-family-bold-italic = "RobotoMono Nerd Font Mono" 6 | 7 | font-style-bold = default 8 | font-style-italic = false 9 | font-style-bold-italic = Italic 10 | font-size = 17 11 | font-thicken = true 12 | 13 | adjust-underline-position = 20% 14 | adjust-underline-thickness = -3 15 | 16 | window-decoration = false 17 | window-padding-y = 0,0 18 | window-padding-x = 10 19 | macos-titlebar-style = hidden 20 | 21 | theme = catppuccin-frappe 22 | unfocused-split-opacity = 0.55 23 | background-blur-radius = 20 24 | background-opacity = 0.91 25 | 26 | shell-integration = zsh 27 | shell-integration-features = title 28 | 29 | keybind = cmd+enter=toggle_split_zoom 30 | keybind = cmd+\=equalize_splits 31 | keybind = cmd+up=resize_split:up,100 32 | keybind = cmd+down=resize_split:down,100 33 | keybind = global:ctrl+`=toggle_quick_terminal 34 | 35 | adjust-cursor-thickness = 5 36 | cursor-color = "#00B5FF" 37 | adjust-cell-height = 3 38 | adjust-cell-width = 0 39 | cursor-style-blink = false 40 | 41 | keybind = super+j=text:\x1dj 42 | keybind = super+p=text:\x10 43 | keybind = cmd+t=text:\x13c 44 | keybind = cmd+d=text:\x13% 45 | keybind = cmd+shift+d=text:\x13" 46 | keybind = cmd+1=text:\x131 47 | keybind = cmd+2=text:\x132 48 | keybind = cmd+3=text:\x133 49 | keybind = cmd+4=text:\x134 50 | keybind = cmd+5=text:\x135 51 | keybind = cmd+j=text:\x13j 52 | keybind = cmd+w=text:\x13& 53 | keybind = cmd+enter=text:\x13z 54 | keybind = cmd+[=text:\x13o 55 | keybind = cmd+]=text:\x13; 56 | keybind = cmd+'=text:\x13q 57 | keybind = cmd+g=text:\x13g 58 | -------------------------------------------------------------------------------- /karabiner/assets/complex_modifications/1735573186.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Left ctrl + hjkl to Arrow Keys Vim", 3 | "rules": [ 4 | { 5 | "description": "Left ctrl + hjkl to arrow keys Vim", 6 | "manipulators": [ 7 | { 8 | "from": { 9 | "key_code": "h", 10 | "modifiers": { 11 | "mandatory": ["left_control"], 12 | "optional": ["any"] 13 | } 14 | }, 15 | "to": [ 16 | { 17 | "key_code": "left_arrow" 18 | } 19 | ], 20 | "type": "basic" 21 | }, 22 | { 23 | "from": { 24 | "key_code": "j", 25 | "modifiers": { 26 | "mandatory": ["left_control"], 27 | "optional": ["any"] 28 | } 29 | }, 30 | "to": [ 31 | { 32 | "key_code": "down_arrow" 33 | } 34 | ], 35 | "type": "basic" 36 | }, 37 | { 38 | "from": { 39 | "key_code": "k", 40 | "modifiers": { 41 | "mandatory": ["left_control"], 42 | "optional": ["any"] 43 | } 44 | }, 45 | "to": [ 46 | { 47 | "key_code": "up_arrow" 48 | } 49 | ], 50 | "type": "basic" 51 | }, 52 | { 53 | "from": { 54 | "key_code": "l", 55 | "modifiers": { 56 | "mandatory": ["left_control"], 57 | "optional": ["any"] 58 | } 59 | }, 60 | "to": [ 61 | { 62 | "key_code": "right_arrow" 63 | } 64 | ], 65 | "type": "basic" 66 | } 67 | ] 68 | } 69 | ] 70 | } 71 | -------------------------------------------------------------------------------- /karabiner/karabiner.json: -------------------------------------------------------------------------------- 1 | { 2 | "global": { "check_for_jkjupdates_on_startup": true }, 3 | "profiles": [ 4 | { 5 | "complex_modifications": { 6 | "parameters": { 7 | "basic.simultaneous_threshold_milliseconds": 10, 8 | "basic.to_delayed_action_delay_milliseconds": 100, 9 | "basic.to_if_held_down_threshold_milliseconds": 100 10 | }, 11 | "rules": [ 12 | { 13 | "description": "Change spacebar to left_shift. (Post spacebar if pressed alone)", 14 | "manipulators": [ 15 | { 16 | "from": { 17 | "key_code": "spacebar", 18 | "modifiers": { "optional": ["any"] } 19 | }, 20 | "to": [{ "key_code": "left_shift" }], 21 | "to_if_alone": [{ "key_code": "spacebar" }], 22 | "type": "basic" 23 | } 24 | ] 25 | }, 26 | { 27 | "manipulators": [ 28 | { 29 | "description": "Change caps_lock to command+control+option+shift.", 30 | "from": { 31 | "key_code": "caps_lock", 32 | "modifiers": { "optional": ["any"] } 33 | }, 34 | "to": [ 35 | { 36 | "key_code": "left_shift", 37 | "modifiers": ["left_command", "left_control", "left_option"] 38 | } 39 | ], 40 | "type": "basic" 41 | } 42 | ] 43 | }, 44 | { 45 | "description": "Change right_command+hjkl to arrow keys", 46 | "manipulators": [ 47 | { 48 | "from": { 49 | "key_code": "h", 50 | "modifiers": { 51 | "mandatory": ["right_command"], 52 | "optional": ["any"] 53 | } 54 | }, 55 | "to": [{ "key_code": "left_arrow" }], 56 | "type": "basic" 57 | }, 58 | { 59 | "from": { 60 | "key_code": "j", 61 | "modifiers": { 62 | "mandatory": ["right_command"], 63 | "optional": ["any"] 64 | } 65 | }, 66 | "to": [{ "key_code": "down_arrow" }], 67 | "type": "basic" 68 | }, 69 | { 70 | "from": { 71 | "key_code": "k", 72 | "modifiers": { 73 | "mandatory": ["right_command"], 74 | "optional": ["any"] 75 | } 76 | }, 77 | "to": [{ "key_code": "up_arrow" }], 78 | "type": "basic" 79 | }, 80 | { 81 | "from": { 82 | "key_code": "l", 83 | "modifiers": { 84 | "mandatory": ["right_command"], 85 | "optional": ["any"] 86 | } 87 | }, 88 | "to": [{ "key_code": "right_arrow" }], 89 | "type": "basic" 90 | } 91 | ] 92 | }, 93 | { 94 | "description": "Windows", 95 | "manipulators": [ 96 | { 97 | "conditions": [ 98 | { 99 | "bundle_identifiers": [ 100 | "^com\\.microsoft\\.rdc$", 101 | "^com\\.microsoft\\.rdc\\.macos$", 102 | "^com\\.microsoft\\.rdc\\." 103 | ], 104 | "type": "frontmost_application_if" 105 | } 106 | ], 107 | "from": { "key_code": "left_command" }, 108 | "to": [{ "key_code": "left_control" }], 109 | "type": "basic" 110 | } 111 | ] 112 | }, 113 | { 114 | "description": "Emacs key bindings [control+keys] (rev 10)", 115 | "manipulators": [ 116 | { 117 | "conditions": [ 118 | { 119 | "bundle_identifiers": [ 120 | "^org\\.gnu\\.Emacs$", 121 | "^org\\.gnu\\.AquamacsEmacs$", 122 | "^org\\.gnu\\.Aquamacs$", 123 | "^org\\.pqrs\\.unknownapp.conkeror$", 124 | "^com\\.microsoft\\.rdc$", 125 | "^com\\.microsoft\\.rdc\\.", 126 | "^net\\.sf\\.cord$", 127 | "^com\\.thinomenon\\.RemoteDesktopConnection$", 128 | "^com\\.itap-mobile\\.qmote$", 129 | "^com\\.nulana\\.remotixmac$", 130 | "^com\\.p5sys\\.jump\\.mac\\.viewer$", 131 | "^com\\.p5sys\\.jump\\.mac\\.viewer\\.", 132 | "^com\\.teamviewer\\.TeamViewer$", 133 | "^com\\.vmware\\.horizon$", 134 | "^com\\.2X\\.Client\\.Mac$", 135 | "^com\\.apple\\.Terminal$", 136 | "^com\\.googlecode\\.iterm2$", 137 | "^co\\.zeit\\.hyperterm$", 138 | "^co\\.zeit\\.hyper$", 139 | "^org\\.alacritty$", 140 | "^dev\\.zed\\.Zed$", 141 | "^net\\.kovidgoyal\\.kitty$", 142 | "^com\\.github\\.wez\\.wezterm$", 143 | "^app\\.dataflare\\.desktop$", 144 | "^md\\.obsidian$", 145 | "^com\\.todesktop\\.230313mzl4w4u92$", 146 | "^com\\.mitchellh\\.ghostty$", 147 | "^com\\.raphaelamorim\\.rio$", 148 | "^org\\.vim\\.", 149 | "^com\\.qvacua\\.VimR$", 150 | "^com\\.vmware\\.fusion$", 151 | "^com\\.vmware\\.horizon$", 152 | "^com\\.vmware\\.view$", 153 | "^com\\.parallels\\.desktop$", 154 | "^com\\.parallels\\.vm$", 155 | "^com\\.parallels\\.desktop\\.console$", 156 | "^org\\.virtualbox\\.app\\.VirtualBoxVM$", 157 | "^com\\.citrix\\.XenAppViewer$", 158 | "^com\\.vmware\\.proxyApp\\.", 159 | "^com\\.parallels\\.winapp\\.", 160 | "^org\\.x\\.X11$", 161 | "^com\\.apple\\.x11$", 162 | "^org\\.macosforge\\.xquartz\\.X11$", 163 | "^org\\.macports\\.X11$", 164 | "^com\\.sublimetext\\.", 165 | "^com\\.microsoft\\.VSCode$" 166 | ], 167 | "type": "frontmost_application_unless" 168 | } 169 | ], 170 | "from": { 171 | "key_code": "d", 172 | "modifiers": { 173 | "mandatory": ["control"], 174 | "optional": ["caps_lock", "option"] 175 | } 176 | }, 177 | "to": [{ "key_code": "delete_forward" }], 178 | "type": "basic" 179 | }, 180 | { 181 | "conditions": [ 182 | { 183 | "bundle_identifiers": [ 184 | "^org\\.gnu\\.Emacs$", 185 | "^org\\.gnu\\.AquamacsEmacs$", 186 | "^org\\.gnu\\.Aquamacs$", 187 | "^org\\.pqrs\\.unknownapp.conkeror$", 188 | "^com\\.microsoft\\.rdc$", 189 | "^com\\.microsoft\\.rdc\\.", 190 | "^net\\.sf\\.cord$", 191 | "^com\\.thinomenon\\.RemoteDesktopConnection$", 192 | "^com\\.itap-mobile\\.qmote$", 193 | "^com\\.nulana\\.remotixmac$", 194 | "^com\\.p5sys\\.jump\\.mac\\.viewer$", 195 | "^com\\.p5sys\\.jump\\.mac\\.viewer\\.", 196 | "^com\\.teamviewer\\.TeamViewer$", 197 | "^com\\.vmware\\.horizon$", 198 | "^com\\.2X\\.Client\\.Mac$", 199 | "^com\\.apple\\.Terminal$", 200 | "^com\\.googlecode\\.iterm2$", 201 | "^co\\.zeit\\.hyperterm$", 202 | "^co\\.zeit\\.hyper$", 203 | "^app\\.dataflare\\.desktop$", 204 | "^org\\.alacritty$", 205 | "^dev\\.zed\\.Zed$", 206 | "^net\\.kovidgoyal\\.kitty$", 207 | "^com\\.github\\.wez\\.wezterm$", 208 | "^md\\.obsidian$", 209 | "^com\\.mitchellh\\.ghostty$", 210 | "^com\\.todesktop\\.230313mzl4w4u92$", 211 | "^com\\.raphaelamorim\\.rio$", 212 | "^org\\.vim\\.", 213 | "^com\\.qvacua\\.VimR$", 214 | "^com\\.vmware\\.fusion$", 215 | "^com\\.vmware\\.horizon$", 216 | "^com\\.vmware\\.view$", 217 | "^com\\.parallels\\.desktop$", 218 | "^com\\.parallels\\.vm$", 219 | "^com\\.parallels\\.desktop\\.console$", 220 | "^org\\.virtualbox\\.app\\.VirtualBoxVM$", 221 | "^com\\.citrix\\.XenAppViewer$", 222 | "^com\\.vmware\\.proxyApp\\.", 223 | "^com\\.parallels\\.winapp\\.", 224 | "^org\\.x\\.X11$", 225 | "^com\\.apple\\.x11$", 226 | "^org\\.macosforge\\.xquartz\\.X11$", 227 | "^org\\.macports\\.X11$", 228 | "^com\\.sublimetext\\.", 229 | "^com\\.microsoft\\.VSCode$" 230 | ], 231 | "type": "frontmost_application_unless" 232 | } 233 | ], 234 | "from": { 235 | "key_code": "i", 236 | "modifiers": { 237 | "mandatory": ["control"], 238 | "optional": ["caps_lock", "shift"] 239 | } 240 | }, 241 | "to": [{ "key_code": "tab" }], 242 | "type": "basic" 243 | }, 244 | { 245 | "conditions": [ 246 | { 247 | "keyboard_types": ["ansi", "iso"], 248 | "type": "keyboard_type_if" 249 | } 250 | ], 251 | "from": { 252 | "key_code": "open_bracket", 253 | "modifiers": { 254 | "mandatory": ["control"], 255 | "optional": ["caps_lock"] 256 | } 257 | }, 258 | "to": [{ "key_code": "escape" }], 259 | "type": "basic" 260 | }, 261 | { 262 | "conditions": [ 263 | { 264 | "keyboard_types": ["jis"], 265 | "type": "keyboard_type_if" 266 | } 267 | ], 268 | "from": { 269 | "key_code": "close_bracket", 270 | "modifiers": { 271 | "mandatory": ["control"], 272 | "optional": ["caps_lock"] 273 | } 274 | }, 275 | "to": [{ "key_code": "escape" }], 276 | "type": "basic" 277 | }, 278 | { 279 | "from": { 280 | "key_code": "m", 281 | "modifiers": { 282 | "mandatory": ["control"], 283 | "optional": ["caps_lock", "shift", "option"] 284 | } 285 | }, 286 | "to": [{ "key_code": "return_or_enter" }], 287 | "type": "basic" 288 | }, 289 | { 290 | "conditions": [ 291 | { 292 | "bundle_identifiers": [ 293 | "^org\\.gnu\\.Emacs$", 294 | "^org\\.gnu\\.AquamacsEmacs$", 295 | "^org\\.gnu\\.Aquamacs$", 296 | "^org\\.pqrs\\.unknownapp.conkeror$", 297 | "^com\\.microsoft\\.rdc$", 298 | "^com\\.microsoft\\.rdc\\.", 299 | "^net\\.sf\\.cord$", 300 | "^com\\.thinomenon\\.RemoteDesktopConnection$", 301 | "^com\\.itap-mobile\\.qmote$", 302 | "^com\\.nulana\\.remotixmac$", 303 | "^com\\.p5sys\\.jump\\.mac\\.viewer$", 304 | "^com\\.p5sys\\.jump\\.mac\\.viewer\\.", 305 | "^com\\.teamviewer\\.TeamViewer$", 306 | "^com\\.vmware\\.horizon$", 307 | "^com\\.2X\\.Client\\.Mac$", 308 | "^com\\.apple\\.Terminal$", 309 | "^com\\.googlecode\\.iterm2$", 310 | "^co\\.zeit\\.hyperterm$", 311 | "^co\\.zeit\\.hyper$", 312 | "^app\\.dataflare\\.desktop$", 313 | "^org\\.alacritty$", 314 | "^dev\\.zed\\.Zed$", 315 | "^net\\.kovidgoyal\\.kitty$", 316 | "^com\\.github\\.wez\\.wezterm$", 317 | "^md\\.obsidian$", 318 | "^com\\.mitchellh\\.ghostty$", 319 | "^com\\.todesktop\\.230313mzl4w4u92$", 320 | "^com\\.raphaelamorim\\.rio$", 321 | "^org\\.vim\\.", 322 | "^com\\.qvacua\\.VimR$", 323 | "^com\\.vmware\\.fusion$", 324 | "^com\\.vmware\\.horizon$", 325 | "^com\\.vmware\\.view$", 326 | "^com\\.parallels\\.desktop$", 327 | "^com\\.parallels\\.vm$", 328 | "^com\\.parallels\\.desktop\\.console$", 329 | "^org\\.virtualbox\\.app\\.VirtualBoxVM$", 330 | "^com\\.citrix\\.XenAppViewer$", 331 | "^com\\.vmware\\.proxyApp\\.", 332 | "^com\\.parallels\\.winapp\\.", 333 | "^org\\.x\\.X11$", 334 | "^com\\.apple\\.x11$", 335 | "^org\\.macosforge\\.xquartz\\.X11$", 336 | "^org\\.macports\\.X11$", 337 | "^com\\.sublimetext\\.", 338 | "^com\\.microsoft\\.VSCode$" 339 | ], 340 | "type": "frontmost_application_unless" 341 | } 342 | ], 343 | "from": { 344 | "key_code": "b", 345 | "modifiers": { 346 | "mandatory": ["control"], 347 | "optional": ["caps_lock", "shift", "option"] 348 | } 349 | }, 350 | "to": [ 351 | { 352 | "key_code": "left_arrow", 353 | "modifiers": ["left_option"] 354 | } 355 | ], 356 | "type": "basic" 357 | }, 358 | { 359 | "conditions": [ 360 | { 361 | "bundle_identifiers": [ 362 | "^org\\.gnu\\.Emacs$", 363 | "^org\\.gnu\\.AquamacsEmacs$", 364 | "^org\\.gnu\\.Aquamacs$", 365 | "^org\\.pqrs\\.unknownapp.conkeror$", 366 | "^com\\.microsoft\\.rdc$", 367 | "^com\\.microsoft\\.rdc\\.", 368 | "^net\\.sf\\.cord$", 369 | "^com\\.thinomenon\\.RemoteDesktopConnection$", 370 | "^com\\.itap-mobile\\.qmote$", 371 | "^com\\.nulana\\.remotixmac$", 372 | "^com\\.p5sys\\.jump\\.mac\\.viewer$", 373 | "^com\\.p5sys\\.jump\\.mac\\.viewer\\.", 374 | "^com\\.teamviewer\\.TeamViewer$", 375 | "^com\\.vmware\\.horizon$", 376 | "^com\\.2X\\.Client\\.Mac$", 377 | "^app\\.dataflare\\.desktop$", 378 | "^com\\.apple\\.Terminal$", 379 | "^com\\.googlecode\\.iterm2$", 380 | "^co\\.zeit\\.hyperterm$", 381 | "^co\\.zeit\\.hyper$", 382 | "^org\\.alacritty$", 383 | "^dev\\.zed\\.Zed$", 384 | "^net\\.kovidgoyal\\.kitty$", 385 | "^com\\.github\\.wez\\.wezterm$", 386 | "^md\\.obsidian$", 387 | "^com\\.mitchellh\\.ghostty$", 388 | "^com\\.todesktop\\.230313mzl4w4u92$", 389 | "^com\\.raphaelamorim\\.rio$", 390 | "^org\\.vim\\.", 391 | "^com\\.qvacua\\.VimR$", 392 | "^com\\.vmware\\.fusion$", 393 | "^com\\.vmware\\.horizon$", 394 | "^com\\.vmware\\.view$", 395 | "^com\\.parallels\\.desktop$", 396 | "^com\\.parallels\\.vm$", 397 | "^com\\.parallels\\.desktop\\.console$", 398 | "^org\\.virtualbox\\.app\\.VirtualBoxVM$", 399 | "^com\\.citrix\\.XenAppViewer$", 400 | "^com\\.vmware\\.proxyApp\\.", 401 | "^com\\.parallels\\.winapp\\.", 402 | "^org\\.x\\.X11$", 403 | "^com\\.apple\\.x11$", 404 | "^org\\.macosforge\\.xquartz\\.X11$", 405 | "^org\\.macports\\.X11$", 406 | "^com\\.sublimetext\\.", 407 | "^com\\.microsoft\\.VSCode$" 408 | ], 409 | "type": "frontmost_application_unless" 410 | } 411 | ], 412 | "from": { 413 | "key_code": "f", 414 | "modifiers": { 415 | "mandatory": ["control"], 416 | "optional": ["caps_lock", "shift", "option"] 417 | } 418 | }, 419 | "to": [ 420 | { 421 | "key_code": "right_arrow", 422 | "modifiers": ["left_option"] 423 | } 424 | ], 425 | "type": "basic" 426 | }, 427 | { 428 | "conditions": [ 429 | { 430 | "bundle_identifiers": [ 431 | "^org\\.gnu\\.Emacs$", 432 | "^org\\.gnu\\.AquamacsEmacs$", 433 | "^org\\.gnu\\.Aquamacs$", 434 | "^org\\.pqrs\\.unknownapp.conkeror$", 435 | "^com\\.microsoft\\.rdc$", 436 | "^com\\.microsoft\\.rdc\\.", 437 | "^net\\.sf\\.cord$", 438 | "^com\\.thinomenon\\.RemoteDesktopConnection$", 439 | "^com\\.itap-mobile\\.qmote$", 440 | "^com\\.nulana\\.remotixmac$", 441 | "^com\\.p5sys\\.jump\\.mac\\.viewer$", 442 | "^app\\.dataflare\\.desktop$", 443 | "^com\\.p5sys\\.jump\\.mac\\.viewer\\.", 444 | "^com\\.teamviewer\\.TeamViewer$", 445 | "^com\\.vmware\\.horizon$", 446 | "^com\\.2X\\.Client\\.Mac$", 447 | "^com\\.apple\\.Terminal$", 448 | "^com\\.googlecode\\.iterm2$", 449 | "^co\\.zeit\\.hyperterm$", 450 | "^co\\.zeit\\.hyper$", 451 | "^org\\.alacritty$", 452 | "^dev\\.zed\\.Zed$", 453 | "^net\\.kovidgoyal\\.kitty$", 454 | "^com\\.github\\.wez\\.wezterm$", 455 | "^md\\.obsidian$", 456 | "^com\\.mitchellh\\.ghostty$", 457 | "^com\\.todesktop\\.230313mzl4w4u92$", 458 | "^com\\.raphaelamorim\\.rio$", 459 | "^org\\.vim\\.", 460 | "^com\\.qvacua\\.VimR$", 461 | "^com\\.vmware\\.fusion$", 462 | "^com\\.vmware\\.horizon$", 463 | "^com\\.vmware\\.view$", 464 | "^com\\.parallels\\.desktop$", 465 | "^com\\.parallels\\.vm$", 466 | "^com\\.parallels\\.desktop\\.console$", 467 | "^org\\.virtualbox\\.app\\.VirtualBoxVM$", 468 | "^com\\.citrix\\.XenAppViewer$", 469 | "^com\\.vmware\\.proxyApp\\.", 470 | "^com\\.parallels\\.winapp\\.", 471 | "^org\\.x\\.X11$", 472 | "^com\\.apple\\.x11$", 473 | "^org\\.macosforge\\.xquartz\\.X11$", 474 | "^org\\.macports\\.X11$", 475 | "^com\\.sublimetext\\.", 476 | "^com\\.microsoft\\.VSCode$" 477 | ], 478 | "type": "frontmost_application_unless" 479 | } 480 | ], 481 | "from": { 482 | "key_code": "n", 483 | "modifiers": { 484 | "mandatory": ["control"], 485 | "optional": ["caps_lock", "shift", "option"] 486 | } 487 | }, 488 | "to": [{ "key_code": "down_arrow" }], 489 | "type": "basic" 490 | }, 491 | { 492 | "conditions": [ 493 | { 494 | "bundle_identifiers": [ 495 | "^org\\.gnu\\.Emacs$", 496 | "^org\\.gnu\\.AquamacsEmacs$", 497 | "^org\\.gnu\\.Aquamacs$", 498 | "^org\\.pqrs\\.unknownapp.conkeror$", 499 | "^com\\.microsoft\\.rdc$", 500 | "^com\\.microsoft\\.rdc\\.", 501 | "^net\\.sf\\.cord$", 502 | "^com\\.thinomenon\\.RemoteDesktopConnection$", 503 | "^com\\.itap-mobile\\.qmote$", 504 | "^com\\.nulana\\.remotixmac$", 505 | "^com\\.p5sys\\.jump\\.mac\\.viewer$", 506 | "^com\\.p5sys\\.jump\\.mac\\.viewer\\.", 507 | "^com\\.teamviewer\\.TeamViewer$", 508 | "^com\\.vmware\\.horizon$", 509 | "^com\\.2X\\.Client\\.Mac$", 510 | "^com\\.apple\\.Terminal$", 511 | "^com\\.googlecode\\.iterm2$", 512 | "^co\\.zeit\\.hyperterm$", 513 | "^co\\.zeit\\.hyper$", 514 | "^org\\.alacritty$", 515 | "^dev\\.zed\\.Zed$", 516 | "^net\\.kovidgoyal\\.kitty$", 517 | "^com\\.github\\.wez\\.wezterm$", 518 | "^md\\.obsidian$", 519 | "^com\\.mitchellh\\.ghostty$", 520 | "^com\\.todesktop\\.230313mzl4w4u92$", 521 | "^com\\.raphaelamorim\\.rio$", 522 | "^org\\.vim\\.", 523 | "^com\\.qvacua\\.VimR$", 524 | "^com\\.vmware\\.fusion$", 525 | "^com\\.vmware\\.horizon$", 526 | "^com\\.vmware\\.view$", 527 | "^com\\.parallels\\.desktop$", 528 | "^com\\.parallels\\.vm$", 529 | "^com\\.parallels\\.desktop\\.console$", 530 | "^org\\.virtualbox\\.app\\.VirtualBoxVM$", 531 | "^com\\.citrix\\.XenAppViewer$", 532 | "^com\\.vmware\\.proxyApp\\.", 533 | "^com\\.parallels\\.winapp\\.", 534 | "^org\\.x\\.X11$", 535 | "^com\\.apple\\.x11$", 536 | "^org\\.macosforge\\.xquartz\\.X11$", 537 | "^org\\.macports\\.X11$", 538 | "^com\\.sublimetext\\.", 539 | "^com\\.microsoft\\.VSCode$" 540 | ], 541 | "type": "frontmost_application_unless" 542 | } 543 | ], 544 | "from": { 545 | "key_code": "p", 546 | "modifiers": { 547 | "mandatory": ["control"], 548 | "optional": ["caps_lock", "shift", "option"] 549 | } 550 | }, 551 | "to": [{ "key_code": "up_arrow" }], 552 | "type": "basic" 553 | }, 554 | { 555 | "conditions": [ 556 | { 557 | "bundle_identifiers": [ 558 | "^com\\.microsoft\\.Excel$", 559 | "^com\\.microsoft\\.Powerpoint$", 560 | "^com\\.microsoft\\.Word$" 561 | ], 562 | "type": "frontmost_application_if" 563 | } 564 | ], 565 | "from": { 566 | "key_code": "a", 567 | "modifiers": { 568 | "mandatory": ["control"], 569 | "optional": ["caps_lock", "shift"] 570 | } 571 | }, 572 | "to": [{ "key_code": "home" }], 573 | "type": "basic" 574 | }, 575 | { 576 | "conditions": [ 577 | { 578 | "bundle_identifiers": [ 579 | "^com\\.microsoft\\.Excel$", 580 | "^com\\.microsoft\\.Powerpoint$", 581 | "^com\\.microsoft\\.Word$" 582 | ], 583 | "type": "frontmost_application_if" 584 | } 585 | ], 586 | "from": { 587 | "key_code": "e", 588 | "modifiers": { 589 | "mandatory": ["control"], 590 | "optional": ["caps_lock", "shift"] 591 | } 592 | }, 593 | "to": [{ "key_code": "end" }], 594 | "type": "basic" 595 | }, 596 | { 597 | "conditions": [ 598 | { 599 | "bundle_identifiers": [ 600 | "^org\\.eclipse\\.platform\\.ide$" 601 | ], 602 | "type": "frontmost_application_if" 603 | } 604 | ], 605 | "from": { 606 | "key_code": "a", 607 | "modifiers": { 608 | "mandatory": ["control"], 609 | "optional": ["caps_lock", "shift"] 610 | } 611 | }, 612 | "to": [ 613 | { 614 | "key_code": "left_arrow", 615 | "modifiers": ["left_command"] 616 | } 617 | ], 618 | "type": "basic" 619 | }, 620 | { 621 | "conditions": [ 622 | { 623 | "bundle_identifiers": [ 624 | "^org\\.eclipse\\.platform\\.ide$" 625 | ], 626 | "type": "frontmost_application_if" 627 | } 628 | ], 629 | "from": { 630 | "key_code": "e", 631 | "modifiers": { 632 | "mandatory": ["control"], 633 | "optional": ["caps_lock", "shift"] 634 | } 635 | }, 636 | "to": [ 637 | { 638 | "key_code": "right_arrow", 639 | "modifiers": ["left_command"] 640 | } 641 | ], 642 | "type": "basic" 643 | } 644 | ] 645 | }, 646 | { 647 | "description": "Bash style Emacs key bindings (rev 2)", 648 | "manipulators": [ 649 | { 650 | "conditions": [ 651 | { 652 | "bundle_identifiers": [ 653 | "^org\\.gnu\\.Emacs$", 654 | "^org\\.gnu\\.AquamacsEmacs$", 655 | "^org\\.gnu\\.Aquamacs$", 656 | "^org\\.pqrs\\.unknownapp.conkeror$", 657 | "^com\\.microsoft\\.rdc$", 658 | "^com\\.microsoft\\.rdc\\.", 659 | "^net\\.sf\\.cord$", 660 | "^com\\.github\\.wez\\.wezterm$", 661 | "^com\\.thinomenon\\.RemoteDesktopConnection$", 662 | "^com\\.itap-mobile\\.qmote$", 663 | "^com\\.nulana\\.remotixmac$", 664 | "^com\\.p5sys\\.jump\\.mac\\.viewer$", 665 | "^com\\.p5sys\\.jump\\.mac\\.viewer\\.", 666 | "^com\\.teamviewer\\.TeamViewer$", 667 | "^com\\.vmware\\.horizon$", 668 | "^com\\.2X\\.Client\\.Mac$", 669 | "^com\\.apple\\.Terminal$", 670 | "^com\\.googlecode\\.iterm2$", 671 | "^co\\.zeit\\.hyperterm$", 672 | "^co\\.zeit\\.hyper$", 673 | "^org\\.alacritty$", 674 | "^dev\\.zed\\.Zed$", 675 | "^net\\.kovidgoyal\\.kitty$", 676 | "^com\\.github\\.wez\\.wezterm$", 677 | "^md\\.obsidian$", 678 | "^com\\.mitchellh\\.ghostty$", 679 | "^com\\.raphaelamorim\\.rio$", 680 | "^org\\.vim\\.", 681 | "^com\\.qvacua\\.VimR$", 682 | "^com\\.vmware\\.fusion$", 683 | "^com\\.vmware\\.horizon$", 684 | "^com\\.vmware\\.view$", 685 | "^com\\.parallels\\.desktop$", 686 | "^com\\.parallels\\.vm$", 687 | "^com\\.parallels\\.desktop\\.console$", 688 | "^org\\.virtualbox\\.app\\.VirtualBoxVM$", 689 | "^com\\.citrix\\.XenAppViewer$", 690 | "^com\\.vmware\\.proxyApp\\.", 691 | "^com\\.parallels\\.winapp\\.", 692 | "^org\\.x\\.X11$", 693 | "^com\\.apple\\.x11$", 694 | "^org\\.macosforge\\.xquartz\\.X11$", 695 | "^org\\.macports\\.X11$", 696 | "^com\\.sublimetext\\." 697 | ], 698 | "type": "frontmost_application_unless" 699 | } 700 | ], 701 | "from": { 702 | "key_code": "w", 703 | "modifiers": { 704 | "mandatory": ["control"], 705 | "optional": ["caps_lock"] 706 | } 707 | }, 708 | "to": [ 709 | { 710 | "key_code": "delete_or_backspace", 711 | "modifiers": ["left_option"] 712 | } 713 | ], 714 | "type": "basic" 715 | }, 716 | { 717 | "conditions": [ 718 | { 719 | "bundle_identifiers": [ 720 | "^org\\.gnu\\.Emacs$", 721 | "^org\\.gnu\\.AquamacsEmacs$", 722 | "^org\\.gnu\\.Aquamacs$", 723 | "^org\\.pqrs\\.unknownapp.conkeror$", 724 | "^com\\.microsoft\\.rdc$", 725 | "^com\\.microsoft\\.rdc\\.", 726 | "^net\\.sf\\.cord$", 727 | "^com\\.thinomenon\\.RemoteDesktopConnection$", 728 | "^com\\.itap-mobile\\.qmote$", 729 | "^com\\.nulana\\.remotixmac$", 730 | "^com\\.p5sys\\.jump\\.mac\\.viewer$", 731 | "^com\\.p5sys\\.jump\\.mac\\.viewer\\.", 732 | "^com\\.teamviewer\\.TeamViewer$", 733 | "^com\\.vmware\\.horizon$", 734 | "^com\\.2X\\.Client\\.Mac$", 735 | "^com\\.apple\\.Terminal$", 736 | "^com\\.googlecode\\.iterm2$", 737 | "^co\\.zeit\\.hyperterm$", 738 | "^com\\.todesktop\\.230313mzl4w4u92$", 739 | "^co\\.zeit\\.hyper$", 740 | "^org\\.alacritty$", 741 | "^dev\\.zed\\.Zed$", 742 | "^net\\.kovidgoyal\\.kitty$", 743 | "^com\\.github\\.wez\\.wezterm$", 744 | "^md\\.obsidian$", 745 | "^com\\.mitchellh\\.ghostty$", 746 | "^com\\.raphaelamorim\\.rio$", 747 | "^org\\.vim\\.", 748 | "^com\\.qvacua\\.VimR$", 749 | "^com\\.vmware\\.fusion$", 750 | "^com\\.vmware\\.horizon$", 751 | "^com\\.vmware\\.view$", 752 | "^com\\.parallels\\.desktop$", 753 | "^com\\.parallels\\.vm$", 754 | "^com\\.parallels\\.desktop\\.console$", 755 | "^org\\.virtualbox\\.app\\.VirtualBoxVM$", 756 | "^com\\.citrix\\.XenAppViewer$", 757 | "^com\\.vmware\\.proxyApp\\.", 758 | "^com\\.parallels\\.winapp\\.", 759 | "^org\\.x\\.X11$", 760 | "^com\\.apple\\.x11$", 761 | "^org\\.macosforge\\.xquartz\\.X11$", 762 | "^org\\.macports\\.X11$", 763 | "^com\\.sublimetext\\.", 764 | "^com\\.microsoft\\.VSCode$" 765 | ], 766 | "type": "frontmost_application_unless" 767 | } 768 | ], 769 | "from": { 770 | "key_code": "u", 771 | "modifiers": { 772 | "mandatory": ["control"], 773 | "optional": ["caps_lock"] 774 | } 775 | }, 776 | "to": [ 777 | { 778 | "key_code": "left_arrow", 779 | "modifiers": ["left_command", "left_shift"] 780 | }, 781 | { 782 | "key_code": "delete_or_backspace", 783 | "repeat": false 784 | } 785 | ], 786 | "type": "basic" 787 | } 788 | ] 789 | }, 790 | { 791 | "description": "Left ctrl + hjkl to arrow keys Vim", 792 | "manipulators": [ 793 | { 794 | "from": { 795 | "key_code": "h", 796 | "modifiers": { 797 | "mandatory": ["left_control"], 798 | "optional": ["any"] 799 | } 800 | }, 801 | "to": [{ "key_code": "left_arrow" }], 802 | "type": "basic" 803 | }, 804 | { 805 | "from": { 806 | "key_code": "j", 807 | "modifiers": { 808 | "mandatory": ["left_control"], 809 | "optional": ["any"] 810 | } 811 | }, 812 | "to": [{ "key_code": "down_arrow" }], 813 | "type": "basic" 814 | }, 815 | { 816 | "from": { 817 | "key_code": "k", 818 | "modifiers": { 819 | "mandatory": ["left_control"], 820 | "optional": ["any"] 821 | } 822 | }, 823 | "to": [{ "key_code": "up_arrow" }], 824 | "type": "basic" 825 | }, 826 | { 827 | "from": { 828 | "key_code": "l", 829 | "modifiers": { 830 | "mandatory": ["left_control"], 831 | "optional": ["any"] 832 | } 833 | }, 834 | "to": [{ "key_code": "right_arrow" }], 835 | "type": "basic" 836 | } 837 | ] 838 | } 839 | ] 840 | }, 841 | "devices": [ 842 | { 843 | "identifiers": { 844 | "is_pointing_device": true, 845 | "product_id": 14373 846 | }, 847 | "ignore": false, 848 | "mouse_flip_vertical_wheel": true 849 | } 850 | ], 851 | "name": "Default profile", 852 | "selected": true, 853 | "simple_modifications": [ 854 | { 855 | "from": { "key_code": "right_command" }, 856 | "to": [{ "key_code": "left_control" }] 857 | } 858 | ], 859 | "virtual_hid_keyboard": { "keyboard_type_v2": "ansi" } 860 | } 861 | ] 862 | } -------------------------------------------------------------------------------- /nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- Bootstrap lazy.nvim 2 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 3 | if not (vim.uv or vim.loop).fs_stat(lazypath) then 4 | local lazyrepo = "https://github.com/folke/lazy.nvim.git" 5 | local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) 6 | if vim.v.shell_error ~= 0 then 7 | vim.api.nvim_echo({ 8 | { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, 9 | { out, "WarningMsg" }, 10 | { "\nPress any key to exit..." }, 11 | }, true, {}) 12 | vim.fn.getchar() 13 | os.exit(1) 14 | end 15 | end 16 | vim.opt.rtp:prepend(lazypath) 17 | 18 | require("settings") 19 | require("keymaps") 20 | require("autocmd") 21 | require("lsp") 22 | 23 | 24 | require("lazy").setup("plugins", { 25 | change_detection = { 26 | -- automatically check for config file changes and reload the ui 27 | enabled = true, 28 | notify = false, -- get a notification when changes are found 29 | }, 30 | }) 31 | -------------------------------------------------------------------------------- /nvim/lua/autocmd.lua: -------------------------------------------------------------------------------- 1 | -- rewrite of :h restore-cursor 2 | -- https://github.com/neovim/neovim/issues/16339#issuecomment-1457394370 3 | vim.api.nvim_create_autocmd('BufRead', { 4 | callback = function(opts) 5 | vim.api.nvim_create_autocmd('BufWinEnter', { 6 | once = true, 7 | buffer = opts.buf, 8 | callback = function() 9 | local ft = vim.bo[opts.buf].filetype 10 | local last_known_line = vim.api.nvim_buf_get_mark(opts.buf, '"')[1] 11 | if 12 | not (ft:match('commit') and ft:match('rebase')) 13 | and last_known_line > 1 14 | and last_known_line <= vim.api.nvim_buf_line_count(opts.buf) 15 | then 16 | vim.api.nvim_feedkeys([[g`"]], 'nx', false) 17 | end 18 | end, 19 | }) 20 | end, 21 | }) 22 | 23 | vim.cmd [[ 24 | augroup custom_indentation 25 | autocmd! 26 | autocmd Filetype go setlocal ts=8 sw=8 sts=8 expandtab 27 | autocmd Filetype odin setlocal ts=8 sw=8 sts=8 expandtab 28 | autocmd Filetype c setlocal ts=4 sw=4 sts=4 expandtab 29 | autocmd Filetype markdown set nonumber 30 | augroup END 31 | ]] 32 | -------------------------------------------------------------------------------- /nvim/lua/keymaps.lua: -------------------------------------------------------------------------------- 1 | local opts = { silent = true, nowait = true, noremap = true } 2 | 3 | vim.api.nvim_set_keymap("n", "gq", ":q", opts) 4 | vim.api.nvim_set_keymap("n", ",", ":q", opts) 5 | vim.api.nvim_set_keymap("n", "", "", opts) 6 | vim.api.nvim_set_keymap("v", "", "", opts) 7 | vim.api.nvim_set_keymap("n", "0", "^", opts) 8 | vim.api.nvim_set_keymap("n", "", "3", opts) 9 | vim.api.nvim_set_keymap("n", "", "3", opts) 10 | vim.api.nvim_set_keymap("n", "", ":noh", opts) 11 | vim.api.nvim_set_keymap("n", "Y", "y$", opts) 12 | vim.api.nvim_set_keymap("n", "[w", "[b", opts) 13 | vim.api.nvim_set_keymap("n", "]w", "]b", opts) 14 | vim.api.nvim_set_keymap("n", "", "", opts) 15 | 16 | -- emacs binding in insert mode 17 | vim.api.nvim_set_keymap("i", "", "A", opts) 18 | vim.api.nvim_set_keymap("i", "", "I", opts) 19 | -------------------------------------------------------------------------------- /nvim/lua/lsp/bash.lua: -------------------------------------------------------------------------------- 1 | vim.lsp.config.bash = { 2 | cmd = { "bash-language-server", "start" }, 3 | filetypes = { "sh", "bash", "zsh" }, 4 | } 5 | 6 | vim.lsp.enable("bash") 7 | -------------------------------------------------------------------------------- /nvim/lua/lsp/init.lua: -------------------------------------------------------------------------------- 1 | local lsp_path = vim.fn.stdpath("config") .. "/lua/lsp" 2 | 3 | 4 | vim.diagnostic.config({ 5 | underline = { 6 | severity = { min = vim.diagnostic.severity.ERROR } 7 | }, 8 | virtual_text = { 9 | current_line = false, 10 | severity = { min = vim.diagnostic.severity.ERROR } 11 | }, 12 | virtual_lines = false, 13 | update_in_insert = false, 14 | jump = { 15 | float = false, 16 | wrap = true, 17 | }, 18 | float = { 19 | border = "rounded" 20 | }, 21 | signs = { 22 | severity = { 23 | min = vim.diagnostic.severity.ERROR 24 | }, 25 | text = { 26 | [vim.diagnostic.severity.ERROR] = '➜', -- '•', 27 | [vim.diagnostic.severity.WARN] = '', 28 | [vim.diagnostic.severity.INFO] = '', 29 | [vim.diagnostic.severity.HINT] = '', 30 | } 31 | } 32 | }) 33 | 34 | -- Then load all other LSP configs 35 | for _, file in ipairs(vim.fn.readdir(lsp_path)) do 36 | if file:match("%.lua$") and file ~= "init.lua" then 37 | local module_name = "lsp." .. file:gsub("%.lua$", "") 38 | require(module_name) 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /nvim/lua/lsp/javascript.lua: -------------------------------------------------------------------------------- 1 | vim.lsp.config.javascript = { 2 | cmd = { "vtsls", "--stdio" }, 3 | filetypes = { "javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx" }, 4 | root_markers = { 'tsconfig.json', 'package.json', 'jsconfig.json', '.git' }, 5 | settings = { 6 | }, 7 | } 8 | 9 | vim.lsp.enable("javascript") 10 | -------------------------------------------------------------------------------- /nvim/lua/lsp/json.lua: -------------------------------------------------------------------------------- 1 | vim.lsp.config.json = { 2 | cmd = { "vscode-json-language-server", "--stdio" }, 3 | filetypes = { "json", "jsonc" }, 4 | root_markers = { '.git', 'package.json', 'tsconfig.json' }, 5 | init_options = { 6 | provideFormatter = true, 7 | }, 8 | 9 | -- Add custom command to format entire document 10 | commands = { 11 | } 12 | } 13 | 14 | vim.lsp.enable("json") 15 | -------------------------------------------------------------------------------- /nvim/lua/lsp/lua.lua: -------------------------------------------------------------------------------- 1 | vim.lsp.config.lua = { 2 | cmd = { "lua-language-server" }, 3 | filetypes = { "lua" }, 4 | root_markers = { 5 | ".luarc.json", 6 | ".luarc.jsonc", 7 | ".luacheckrc", 8 | ".stylua.toml", 9 | "stylua.toml", 10 | "selene.toml", 11 | "selene.yml", 12 | ".git", 13 | }, 14 | settings = { 15 | Lua = { 16 | runtime = { 17 | version = 'LuaJIT', 18 | path = vim.split(package.path, ";"), 19 | }, 20 | diagnostics = { 21 | globals = { 'vim' }, 22 | }, 23 | workspace = { 24 | library = vim.api.nvim_get_runtime_file("", true), 25 | }, 26 | telemetry = { 27 | enable = false, 28 | }, 29 | }, 30 | }, 31 | } 32 | 33 | vim.lsp.enable("lua") 34 | -------------------------------------------------------------------------------- /nvim/lua/lsp/python.lua: -------------------------------------------------------------------------------- 1 | vim.lsp.config.python = { 2 | cmd = { "pyright-langserver", "--stdio" }, 3 | filetypes = { "python" }, 4 | root_markers = { 5 | "pyproject.toml", 6 | "setup.py", 7 | "setup.cfg", 8 | "requirements.txt", 9 | "Pipfile", 10 | "pyrightconfig.json", 11 | ".git", 12 | }, 13 | settings = { 14 | python = { 15 | analysis = { 16 | autoSearchPaths = true, 17 | typeCheckingMode = "off", 18 | diagnosticMode = "workspace", 19 | useLibraryCodeForTypes = true 20 | } 21 | } 22 | } 23 | } 24 | 25 | vim.lsp.enable("python") 26 | -------------------------------------------------------------------------------- /nvim/lua/plugins/ai.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "zbirenbaum/copilot.lua", 4 | cmd = "Copilot", 5 | enabled = false, 6 | event = "InsertEnter", 7 | config = function() 8 | require('copilot').setup({ 9 | panel = { 10 | enabled = true, 11 | auto_refresh = false, 12 | keymap = { 13 | jump_prev = "[[", 14 | jump_next = "]]", 15 | accept = "", 16 | open = "" 17 | }, 18 | layout = { 19 | position = "bottom", -- | top | left | right | horizontal | vertical 20 | ratio = 0.4 21 | }, 22 | }, 23 | suggestion = { 24 | enabled = true, 25 | auto_trigger = true, 26 | hide_during_completion = true, 27 | debounce = 75, 28 | keymap = { 29 | accept = "", 30 | accept_word = false, 31 | accept_line = false, 32 | next = "", 33 | prev = "", 34 | dismiss = "", 35 | }, 36 | }, 37 | filetypes = { 38 | yaml = false, 39 | markdown = false, 40 | help = false, 41 | gitcommit = false, 42 | gitrebase = false, 43 | hgcommit = false, 44 | svn = false, 45 | cvs = false, 46 | ["."] = false, 47 | }, 48 | copilot_node_command = 'node', -- Node.js version must be > 18.x 49 | server_opts_overrides = {}, 50 | }) 51 | end, 52 | }, 53 | { 54 | "Exafunction/codeium.nvim", 55 | event = "InsertEnter", 56 | enabled = true, 57 | dependencies = { 58 | "nvim-lua/plenary.nvim", 59 | }, 60 | config = function() 61 | require("codeium").setup({ 62 | -- Optionally disable cmp source if using virtual text only 63 | enable_cmp_source = false, 64 | virtual_text = { 65 | enabled = true, 66 | manual = false, 67 | filetypes = {}, 68 | default_filetype_enabled = true, 69 | idle_delay = 15, 70 | virtual_text_priority = 65535, 71 | map_keys = true, 72 | accept_fallback = nil, 73 | key_bindings = { 74 | accept = "", 75 | accept_word = false, 76 | accept_line = false, 77 | clear = false, 78 | } 79 | } 80 | }) 81 | vim.cmd [[ 82 | hi link CodeiumSuggestion Comment 83 | ]] 84 | end 85 | }, 86 | } 87 | -------------------------------------------------------------------------------- /nvim/lua/plugins/blink.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'saghen/blink.cmp', 4 | event = "VeryLazy", 5 | enabled = true, 6 | build = 'cargo +nightly build --release', 7 | version = '*', 8 | opts_extend = { "sources.default" }, 9 | dependencies = { 10 | { 11 | 'onsails/lspkind.nvim', 12 | event = "VeryLazy", 13 | }, 14 | { "saghen/blink.compat", lazy = true, verson = false }, 15 | -- { "rafamadriz/friendly-snippets", lazy = true, verson = false }, 16 | }, 17 | config = function() 18 | require("blink.cmp").setup({ 19 | completion = { 20 | ghost_text = { 21 | enabled = false 22 | }, 23 | documentation = { 24 | auto_show = true, 25 | auto_show_delay_ms = 500, 26 | }, 27 | accept = { auto_brackets = { enabled = true }, }, 28 | list = { selection = { preselect = true, auto_insert = true } }, 29 | }, 30 | keymap = { 31 | preset = 'super-tab', 32 | -- preset = 'enter', 33 | [""] = { 34 | }, 35 | [''] = { 'accept', 'fallback' }, 36 | }, -- default super-tab enter 37 | appearance = { 38 | use_nvim_cmp_as_default = false, 39 | nerd_font_variant = 'mono', 40 | kind_icons = { 41 | Text = '󰉿', 42 | Method = '󰊕', 43 | Function = '󰊕', 44 | Constructor = '󰒓', 45 | 46 | Field = '󰜢', 47 | Variable = '󰆦', 48 | Property = '󰖷', 49 | 50 | Class = '󱡠', 51 | Interface = '󱡠', 52 | Struct = '󱡠', 53 | Module = '󰅩', 54 | 55 | Unit = '󰪚', 56 | Value = '󰦨', 57 | Enum = '󰦨', 58 | EnumMember = '󰦨', 59 | 60 | Keyword = '󰻾', 61 | Constant = '󰏿', 62 | 63 | Snippet = '󱄽', 64 | Color = '󰏘', 65 | File = '󰈔', 66 | Reference = '󰬲', 67 | Folder = '󰉋', 68 | Event = '󱐋', 69 | Operator = '󰪚', 70 | TypeParameter = '󰬛', 71 | }, 72 | }, 73 | sources = { 74 | default = { 75 | 'lsp', 76 | 'path', 77 | -- 'snippets', 78 | 'buffer', 79 | }, 80 | providers = { 81 | path = { 82 | max_items = 3, 83 | }, 84 | lsp = { 85 | -- max_items = 5 86 | -- min_keyword_length = 2, 87 | }, 88 | buffer = { 89 | -- max_items = 3, 90 | }, 91 | }, 92 | 93 | }, 94 | }) 95 | if vim.fn.has('nvim-0.11') == 1 then 96 | -- Ensure that forced and not configurable `` and `` 97 | -- buffer-local mappings don't override already present ones 98 | local expand_orig = vim.snippet.expand 99 | vim.snippet.expand = function(...) 100 | local tab_map = vim.fn.maparg('', 'i', false, true) 101 | local stab_map = vim.fn.maparg('', 'i', false, true) 102 | expand_orig(...) 103 | vim.schedule(function() 104 | tab_map.buffer, stab_map.buffer = 1, 1 105 | -- Override temporarily forced buffer-local mappings 106 | vim.fn.mapset('i', false, tab_map) 107 | vim.fn.mapset('i', false, stab_map) 108 | end) 109 | end 110 | end 111 | vim.cmd [[ 112 | hi! BlinkCmpLabelMatch gui=bold guifg=NONE 113 | ]] 114 | end 115 | }, 116 | { 117 | 'windwp/nvim-autopairs', 118 | event = "InsertEnter", 119 | config = true, 120 | enabled = true, 121 | -- use opts = {} for passing setup options 122 | -- this is equivalent to setup({}) function 123 | }, 124 | } 125 | -------------------------------------------------------------------------------- /nvim/lua/plugins/coding.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "wellle/targets.vim", 4 | event = "VeryLazy", 5 | config = function() 6 | vim.cmd [[ 7 | autocmd User targets#mappings#user call targets#mappings#extend({ 8 | \ "'": {'quote': [{'d':"'"}, {'d':'"'}, {'d':'`'}]}, 9 | \ }) 10 | ]] 11 | end 12 | }, 13 | { 14 | "folke/ts-comments.nvim", 15 | opts = {}, 16 | event = "VeryLazy", 17 | }, 18 | { 19 | "folke/persistence.nvim", 20 | event = "BufReadPre", 21 | opts = { 22 | -- add any custom options here 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /nvim/lua/plugins/colors.lua: -------------------------------------------------------------------------------- 1 | local function reset() 2 | vim.cmd [[ 3 | hi! SignColumn guibg=NONE 4 | hi! WinBar guibg=NONE 5 | hi! WinBarNC guibg=NONE 6 | hi! DiagnosticSignOk guifg=#b8bb26 guibg=#282828 7 | hi! DiagnosticSignInfo guifg=#83a598 guibg=#282828 8 | hi! DiagnosticSignWarn guifg=#fabd2f guibg=#282828 9 | hi! DiagnosticSignError guifg=#fb4934 guibg=#282828 10 | hi! SagaNormal guibg=#282828 11 | hi! TabLineFill guibg=NONE 12 | hi link IlluminatedWord CursorLine 13 | hi link IlluminatedWordText CursorLine 14 | hi link IlluminatedWordRead CursorLine 15 | hi link illuminatedCurWord CursorLine 16 | hi link IlluminatedWordWrite CursorLine 17 | ]] 18 | end 19 | 20 | return { 21 | { 22 | 'norcalli/nvim-colorizer.lua', 23 | event = "VeryLazy", 24 | config = function() 25 | require 'colorizer'.setup() 26 | end 27 | }, 28 | { 29 | "xiyaowong/transparent.nvim", 30 | event = "VeryLazy", 31 | enabled = false, 32 | config = function() 33 | require("transparent").setup({ 34 | extra_groups = { 35 | "NormalFloat", -- plugins which have float panel such as Lazy, Mason, LspInfo 36 | "NvimTreeNormal" -- NvimTree 37 | }, 38 | exclude_groups = { "CursorLine" }, 39 | }) 40 | vim.g.transparent_enabled = true 41 | end 42 | }, 43 | { 44 | "zenbones-theme/zenbones.nvim", 45 | enabled = false, 46 | dependencies = "rktjmp/lush.nvim", 47 | lazy = false, 48 | priority = 1000, 49 | config = function() 50 | vim.cmd([[ 51 | set termguicolors 52 | set background=light " or dark 53 | colorscheme zenbones 54 | ]]) 55 | reset() 56 | end 57 | }, 58 | { 59 | "folke/tokyonight.nvim", 60 | lazy = false, 61 | priority = 1000, 62 | enabled = false, 63 | config = function() 64 | vim.cmd([[ 65 | set termguicolors 66 | set background=dark " or dark 67 | colorscheme tokyonight 68 | ]]) 69 | reset() 70 | end 71 | }, 72 | { 73 | "catppuccin/nvim", 74 | name = "catppuccin", 75 | priority = 1000, 76 | config = function() 77 | require("catppuccin").setup({ 78 | flavour = "frappe", -- latte, frappe, macchiato, mocha 79 | background = { -- :h background 80 | light = "latte", 81 | dark = "frappe", 82 | }, 83 | transparent_background = true, -- disables setting the background color. 84 | show_end_of_buffer = false, -- shows the '~' characters after the end of buffers 85 | term_colors = true, -- sets terminal colors (e.g. `g:terminal_color_0`) 86 | dim_inactive = { 87 | enabled = false, -- dims the background color of inactive window 88 | shade = "dark", 89 | percentage = 0.15, -- percentage of the shade to apply to the inactive window 90 | }, 91 | no_italic = false, -- Force no italic 92 | no_bold = false, -- Force no bold 93 | no_underline = false, -- Force no underline 94 | styles = { -- Handles the styles of general hi groups (see `:h highlight-args`): 95 | comments = { "italic" }, -- Change the style of comments 96 | conditionals = {}, 97 | loops = {}, 98 | functions = { "bold", "italic" }, 99 | keywords = {}, 100 | strings = {}, 101 | variables = {}, 102 | numbers = {}, 103 | booleans = {}, 104 | properties = {}, 105 | types = { "bold" }, 106 | operators = {}, 107 | -- miscs = {}, -- Uncomment to turn off hard-coded styles 108 | }, 109 | color_overrides = {}, 110 | custom_highlights = {}, 111 | default_integrations = true, 112 | integrations = { 113 | cmp = true, 114 | gitsigns = true, 115 | nvimtree = true, 116 | treesitter = true, 117 | notify = true, 118 | native_lsp = { 119 | enabled = true, 120 | virtual_text = { 121 | errors = { "italic" }, 122 | hints = { "italic" }, 123 | warnings = { "italic" }, 124 | information = { "italic" }, 125 | ok = { "italic" }, 126 | }, 127 | underlines = { 128 | errors = { "underdashed" }, 129 | hints = { "underdashed" }, 130 | warnings = { "underdashed" }, 131 | information = { "underdashed" }, 132 | ok = { "underdashed" }, 133 | }, 134 | -- underlines = { 135 | -- errors = { "underdotted" }, 136 | -- hints = { "underdotted" }, 137 | -- warnings = { "underdotted" }, 138 | -- information = { "underdotted" }, 139 | -- ok = { "underdotted" }, 140 | -- }, 141 | inlay_hints = { 142 | background = true, 143 | }, 144 | }, 145 | snacks = { 146 | enabled = true, 147 | indent_scope_color = "lavender", -- catppuccin color (eg. `lavender`) Default: text 148 | }, 149 | blink_cmp = true, 150 | mini = { 151 | enabled = true, 152 | indentscope_color = "", 153 | }, 154 | 155 | -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations) 156 | }, 157 | }) 158 | 159 | vim.cmd.colorscheme "catppuccin" 160 | end 161 | }, 162 | { 163 | "EdenEast/nightfox.nvim", 164 | lazy = false, 165 | priority = 1000, 166 | enabled = false, 167 | config = function() 168 | require("nightfox").setup({ 169 | options = { 170 | transparent = true, -- Disable setting background 171 | terminal_colors = true, -- Set terminal colors (vim.g.terminal_color_*) used in `:terminal` 172 | dim_inactive = false, -- Non focused panes set to alternative background 173 | module_default = true, -- Default enable value for modules 174 | styles = { -- Style to be applied to different syntax groups 175 | comments = "NONE", -- Value is any valid attr-list value `:help attr-list` 176 | conditionals = "bold", 177 | constants = "bold", 178 | functions = "bold,italic", 179 | keywords = "bold", 180 | numbers = "NONE", 181 | operators = "NONE", 182 | strings = "NONE", 183 | types = "bold", 184 | variables = "NONE", 185 | }, 186 | }, 187 | palettes = {}, 188 | specs = {}, 189 | groups = {}, 190 | }) 191 | vim.cmd("colorscheme nordfox") 192 | reset() 193 | end 194 | }, 195 | { 196 | 'shaunsingh/nord.nvim', 197 | priority = 1000, 198 | lazy = false, 199 | enabled = false, 200 | config = function() 201 | vim.cmd([[ 202 | colorscheme nord 203 | ]]) 204 | reset() 205 | end 206 | }, 207 | { 208 | "ellisonleao/gruvbox.nvim", 209 | priority = 1000, 210 | enabled = false, 211 | lazy = false, 212 | config = function() 213 | require("gruvbox").setup({ 214 | contrast = "", 215 | }) 216 | vim.cmd([[ 217 | colorscheme gruvbox 218 | hi! SignColumn guibg=NONE 219 | ]]) 220 | reset() 221 | end 222 | }, 223 | } 224 | -------------------------------------------------------------------------------- /nvim/lua/plugins/format.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'stevearc/conform.nvim', 4 | event = "VeryLazy", 5 | enabled = true, 6 | config = function() 7 | require("conform").setup({ 8 | formatters_by_ft = { 9 | sql = { 'sqlfmt' }, 10 | ruby = { "rubyfmt" }, 11 | sh = { "shfmt" }, 12 | go = { "goimports", "gofmt" }, 13 | python = { "ruff_format" }, 14 | typescriptreact = { "lsp" }, 15 | json = { "prettierd" }, 16 | html = { "prettierd" }, 17 | css = { "prettierd" }, 18 | }, 19 | format_after_save = { 20 | -- These options will be passed to conform.format() 21 | async = true, 22 | timeout_ms = 500, 23 | lsp_format = "fallback", 24 | quiet = true 25 | }, 26 | notify_on_error = false, 27 | formatters = { 28 | } 29 | }) 30 | vim.api.nvim_create_user_command("Format", function(args) 31 | local range = nil 32 | if args.count ~= -1 then 33 | local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] 34 | range = { 35 | start = { args.line1, 0 }, 36 | ["end"] = { args.line2, end_line:len() }, 37 | } 38 | end 39 | require("conform").format({ async = true, lsp_format = "fallback", range = range }) 40 | end, { range = true }) 41 | end 42 | }, 43 | } 44 | -------------------------------------------------------------------------------- /nvim/lua/plugins/git.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "tpope/vim-fugitive", 4 | event = "VeryLazy", 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /nvim/lua/plugins/noice.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/noice.nvim", 3 | event = "VeryLazy", 4 | enabled = true, 5 | dependencies = { 6 | "MunifTanjim/nui.nvim", 7 | }, 8 | opts = { 9 | messages = { 10 | view_search = "virtualtext", -- view for search count messages. Set to `false` to disable 11 | }, 12 | routes = { 13 | { 14 | filter = { event = "msg_show", kind = "quickfix" }, 15 | opts = { view = "mini" }, 16 | }, 17 | }, 18 | lsp = { 19 | -- override markdown rendering so that **cmp** and other plugins use **Treesitter** 20 | progress = { 21 | enabled = false, 22 | }, 23 | documentation = { 24 | opts = { 25 | max_height = 2, 26 | border = { style = 'rounded' }, 27 | relative = 'cursor', 28 | position = { 29 | }, 30 | win_options = { 31 | concealcursor = 'n', 32 | conceallevel = 1, 33 | }, 34 | }, 35 | }, 36 | signature = { 37 | }, 38 | override = { 39 | ["vim.lsp.util.convert_input_to_markdown_lines"] = true, 40 | ["vim.lsp.util.stylize_markdown"] = true, 41 | ["cmp.entry.get_documentation"] = true, 42 | }, 43 | }, 44 | -- you can enable a preset for easier configuration 45 | presets = { 46 | bottom_search = true, -- use a classic bottom cmdline for search 47 | command_palette = false, -- position the cmdline and popupmenu together 48 | long_message_to_split = true, -- long messages will be sent to a split 49 | inc_rename = true, -- enables an input dialog for inc-rename.nvim 50 | lsp_doc_border = true, -- add a border to hover docs and signature help 51 | }, 52 | cmdline = { 53 | view = "cmdline", 54 | }, 55 | views = { 56 | mini = { 57 | timeout = 4000, -- Duration between show() and hide(), in milliseconds 58 | win_options = { 59 | winblend = 0, 60 | }, 61 | winhighlight = {}, 62 | size = { 63 | width = "auto", 64 | height = "auto", 65 | max_height = 2, 66 | }, 67 | }, 68 | } 69 | }, 70 | config = function(_, opts) 71 | require("noice").setup(opts) 72 | local search = vim.api.nvim_get_hl_by_name("Search", true) 73 | vim.api.nvim_set_hl(0, 'TransparentSearch', { fg = search.foreground }) 74 | 75 | local help = vim.api.nvim_get_hl_by_name("IncSearch", true) 76 | vim.api.nvim_set_hl(0, 'TransparentHelp', { fg = help.foreground }) 77 | 78 | local cmdGroup = 'DevIconLua' 79 | local noice_cmd_types = { 80 | CmdLine = cmdGroup, 81 | Input = cmdGroup, 82 | Lua = cmdGroup, 83 | Filter = cmdGroup, 84 | Rename = cmdGroup, 85 | Substitute = "Define", 86 | Help = "TransparentHelp", 87 | Search = "TransparentSearch" 88 | } 89 | 90 | for type, hl in pairs(noice_cmd_types) do 91 | vim.api.nvim_set_hl(0, "NoiceCmdlinePopupBorder" .. type, { link = hl }) 92 | vim.api.nvim_set_hl(0, "NoiceCmdlineIcon" .. type, { link = hl }) 93 | end 94 | vim.api.nvim_set_hl(0, "NoiceConfirmBorder", { link = cmdGroup }) 95 | end 96 | } 97 | -------------------------------------------------------------------------------- /nvim/lua/plugins/snacks.lua: -------------------------------------------------------------------------------- 1 | local keymap_opts = { noremap = true, silent = true, } 2 | 3 | local get_term_opts = function(num) 4 | return { 5 | auto_close = false, 6 | win = { 7 | wo = { 8 | winbar = tostring(num), 9 | }, 10 | keys = { 11 | term_normal = { 12 | "", 13 | function() 14 | return "" 15 | end, 16 | mode = "t", 17 | expr = true, 18 | desc = "Double escape to normal mode", 19 | }, 20 | }, 21 | }, 22 | } 23 | end 24 | 25 | 26 | return { 27 | "folke/snacks.nvim", 28 | event = "VeryLazy", 29 | keys = { 30 | -- { "", function() Snacks.zen() end, desc = "Toggle Zen Mode" }, 31 | { "", function() Snacks.zen.zoom() end, desc = "Toggle, Zoom" }, 32 | { ".", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" }, 33 | { "S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" }, 34 | { "i", function() Snacks.picker.lsp_symbols() end, desc = "Select Scratch Buffer" }, 35 | { "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition" }, 36 | { "gD", function() Snacks.picker.lsp_declarations() end, desc = "Goto Declaration" }, 37 | { "sk", function() Snacks.picker.keymaps() end, desc = "Keymaps" }, 38 | { 39 | "grr", 40 | function() 41 | Snacks.picker.lsp_references({ 42 | win = { 43 | input = { 44 | keys = { 45 | [""] = { "tab", mode = { "n", "i" } }, 46 | }, 47 | } 48 | }, 49 | }) 50 | end, 51 | nowait = true, 52 | desc = "References" 53 | }, 54 | { "]]", function() Snacks.words.jump(vim.v.count1) end, desc = "Next Reference", mode = { "n", "t" } }, 55 | { "[[", function() Snacks.words.jump(-vim.v.count1) end, desc = "Prev Reference", mode = { "n", "t" } }, 56 | { "h", function() Snacks.picker.help() end, desc = "Help Pages" }, 57 | { "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" }, 58 | { "sq", function() Snacks.picker.qflist() end, desc = "Quickfix List" }, 59 | { 60 | "gl", 61 | function() 62 | vim.diagnostic.open_float() 63 | end, 64 | desc = "open float" 65 | }, 66 | { 67 | "go", 68 | function() 69 | Snacks.explorer({ 70 | follow_file = true, 71 | hidden = true, 72 | tree = true, 73 | watch = true, 74 | git_status = true, 75 | git_untracked = true, 76 | focus = "list", 77 | layout = { layout = { position = "right" } }, 78 | win = { 79 | input = { 80 | keys = { 81 | [""] = { "tab", mode = { "n", "i" } }, 82 | }, 83 | }, 84 | list = { 85 | keys = { 86 | [""] = { "tab", mode = { "n", "i" } }, 87 | [""] = "explorer_up", 88 | ["l"] = "confirm", 89 | ["h"] = "explorer_close", -- close directory 90 | ["a"] = "explorer_add", 91 | ["d"] = "explorer_del", 92 | ["r"] = "explorer_rename", 93 | ["c"] = "explorer_copy", 94 | ["m"] = "explorer_move", 95 | ["o"] = "explorer_open", -- open with system application 96 | ["P"] = "toggle_preview", 97 | ["y"] = "explorer_yank", 98 | ["."] = "explorer_focus", 99 | ["I"] = "toggle_ignored", 100 | ["H"] = "toggle_hidden", 101 | ["Z"] = "explorer_close_all", 102 | ["]g"] = "explorer_git_next", 103 | ["[g"] = "explorer_git_prev", 104 | ["]d"] = "explorer_diagnostic_next", 105 | ["[d"] = "explorer_diagnostic_prev", 106 | }, 107 | }, 108 | }, 109 | }) 110 | end, 111 | desc = "Explorer" 112 | }, 113 | { "cR", function() Snacks.rename.rename_file() end, desc = "Rename File" }, 114 | { "gg", function() Snacks.lazygit() end, desc = "Lazygit" }, 115 | { "un", function() Snacks.notifier.hide() end, desc = "Dismiss All Notifications" }, 116 | { 117 | "", 118 | function() 119 | Snacks.picker.files({ 120 | hidden = true 121 | }) 122 | end, 123 | desc = "Find Files" 124 | }, 125 | -- test 126 | { "e", function() Snacks.picker.grep() end, desc = "Find Files" }, 127 | { "w", function() Snacks.picker.grep_word() end, desc = "Find Files" }, 128 | { "r", function() Snacks.picker.recent() end, desc = "Find Files" }, 129 | }, 130 | dependencies = { 131 | { 'echasnovski/mini.icons', version = false, event = "VeryLazy" }, 132 | }, 133 | ---@type snacks.Config 134 | opts = { 135 | image = { 136 | enabled = false 137 | }, 138 | terminal = { 139 | enabled = true 140 | }, 141 | bigfile = { enabled = false }, 142 | dashboard = { 143 | enabled = true, 144 | preset = { 145 | keys = { 146 | { icon = " ", key = "p", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" }, 147 | { icon = " ", key = "e", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" }, 148 | { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" }, 149 | { icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" }, 150 | { icon = " ", key = "s", desc = "Restore Session", section = "session" }, 151 | { icon = "󰒲 ", key = "l", desc = "Lazy", action = ":Lazy", enabled = package.loaded.lazy ~= nil }, 152 | { icon = " ", key = "q", desc = "Quit", action = ":qa" }, 153 | }, 154 | } 155 | }, 156 | indent = { 157 | enabled = true, 158 | only_scope = true, 159 | only_current = true, 160 | indent = { 161 | char = " ", 162 | hl = { 163 | 'Whitespace', 164 | 'Whitespace', 165 | }, 166 | }, 167 | scope = { 168 | enabled = true, -- enable highlighting the current scope 169 | priority = 200, 170 | char = "│", 171 | underline = false, -- underline the start of the scope 172 | only_current = true, -- only show scope in the current window 173 | hl = "Whitespace" 174 | }, 175 | animate = { enabled = false, }, 176 | }, 177 | input = { enabled = false }, 178 | notifier = { enabled = false }, 179 | picker = { 180 | win = { 181 | input = { 182 | keys = { 183 | [""] = { "tab", mode = { "n", "i" } }, 184 | [""] = { "close", mode = { "n", "i" } }, 185 | }, 186 | } 187 | }, 188 | enabled = true, 189 | matcher = { 190 | fuzzy = true, -- use fuzzy matching 191 | smartcase = true, -- use smartcase 192 | ignorecase = true, -- use ignorecase 193 | sort_empty = true, -- sort results when the search string is empty 194 | filename_bonus = true, -- give bonus for matching file names (last part of the path) 195 | file_pos = true, -- support patterns like `file:line:col` and `file:line` 196 | cwd_bonus = true, -- give bonus for matching files in the cwd 197 | frecency = true, -- frecency bonus 198 | history_bonus = true, -- give more weight to chronological order 199 | }, 200 | icons = { 201 | files = { 202 | enabled = true, -- show file icons 203 | }, 204 | keymaps = { 205 | nowait = "󰓅 " 206 | }, 207 | tree = { 208 | vertical = "│ ", 209 | middle = "├╴", 210 | last = "└╴", 211 | }, 212 | undo = { 213 | saved = " ", 214 | }, 215 | ui = { 216 | live = "󰐰 ", 217 | hidden = "h", 218 | ignored = "i", 219 | follow = "f", 220 | selected = "● ", 221 | unselected = "○ ", 222 | -- selected = " ", 223 | }, 224 | git = { 225 | enabled = true, -- show git icons 226 | commit = "󰜘 ", -- used by git log 227 | staged = "●", -- staged changes. always overrides the type icons 228 | added = "", 229 | deleted = "", 230 | ignored = " ", 231 | modified = "○", 232 | renamed = "", 233 | unmerged = " ", 234 | untracked = "?", 235 | }, 236 | diagnostics = { 237 | Error = " ", 238 | Warn = " ", 239 | -- Hint = " ", 240 | Hint = " ", 241 | Info = " ", 242 | }, 243 | kinds = { 244 | Array = " ", 245 | Boolean = "󰨙 ", 246 | Class = " ", 247 | Color = " ", 248 | Control = " ", 249 | Collapsed = " ", 250 | Constant = "󰏿 ", 251 | Constructor = " ", 252 | Copilot = " ", 253 | Enum = " ", 254 | EnumMember = " ", 255 | Event = " ", 256 | Field = " ", 257 | File = " ", 258 | Folder = " ", 259 | Function = "󰊕 ", 260 | Interface = " ", 261 | Key = " ", 262 | Keyword = " ", 263 | Method = "󰊕 ", 264 | Module = " ", 265 | Namespace = "󰦮 ", 266 | Null = " ", 267 | Number = "󰎠 ", 268 | Object = " ", 269 | Operator = " ", 270 | Package = " ", 271 | Property = " ", 272 | Reference = " ", 273 | Snippet = "󱄽 ", 274 | String = " ", 275 | Struct = "󰆼 ", 276 | Text = " ", 277 | TypeParameter = " ", 278 | Unit = " ", 279 | Unknown = " ", 280 | Value = " ", 281 | Variable = "󰀫 ", 282 | }, 283 | }, 284 | }, 285 | quickfile = { enabled = false }, 286 | scroll = { enabled = true, left = { "mark", "sign" } }, 287 | statuscolumn = { enabled = true, }, 288 | words = { enabled = true }, 289 | zen = { enabled = true }, 290 | }, 291 | init = function() 292 | vim.g.snacks_animate = false 293 | end, 294 | config = function(_, opts) 295 | local snacks = require("snacks") 296 | local function close_other_terminals(win) 297 | local terminals = Snacks.terminal.list() 298 | for _, term in pairs(terminals) do 299 | if term.buf ~= win.buf then 300 | term:hide() 301 | end 302 | end 303 | end 304 | 305 | snacks.setup(opts) 306 | 307 | local term_wins = { 308 | [1] = nil, 309 | [2] = nil, 310 | [3] = nil, 311 | } 312 | 313 | local last_term_win = nil 314 | 315 | local close_current_term = function() 316 | local in_terminal = vim.bo.buftype == "terminal" 317 | if in_terminal and last_term_win then 318 | last_term_win:hide() 319 | end 320 | end 321 | 322 | local toggle_last_term = function() 323 | local in_terminal = vim.bo.buftype == "terminal" 324 | if in_terminal and last_term_win then 325 | last_term_win:hide() 326 | elseif not in_terminal and last_term_win then 327 | last_term_win:show() 328 | elseif not in_terminal and not last_term_win then 329 | new_term_win = snacks.terminal.open(nil, get_term_opts(1)) 330 | term_wins[1] = new_term_win 331 | last_term_win = new_term_win 332 | end 333 | end 334 | 335 | local toggle_term_by_num = function(num) 336 | local in_terminal = vim.bo.buftype == "terminal" 337 | local snacks = require("snacks") 338 | local curr_term = nil 339 | 340 | -- if a terminal is already open 341 | -- if the desired terminal is the opened one 342 | -- hide it 343 | -- if the desired terminal is not the opened one 344 | -- hide the opened one 345 | -- show the desired one, create if necessary 346 | -- if no terminal is open 347 | -- show the desired one, create if necessary 348 | 349 | if in_terminal then 350 | if last_term_win.id == num then 351 | last_term_win:hide() 352 | else 353 | last_term_win:hide() 354 | if term_wins[num] then 355 | term_wins[num]:show() 356 | last_term_win = term_wins[num] 357 | else 358 | new_term_win = snacks.terminal.open(nil, get_term_opts(num)) 359 | term_wins[num] = new_term_win 360 | last_term_win = new_term_win 361 | end 362 | end 363 | else 364 | if term_wins[num] then 365 | term_wins[num]:show() 366 | last_term_win = term_wins[num] 367 | else 368 | new_term_win = snacks.terminal.open(nil, get_term_opts(num)) 369 | term_wins[num] = new_term_win 370 | last_term_win = new_term_win 371 | end 372 | end 373 | end 374 | 375 | vim.keymap.set({ "n", "t", 'i' }, "", function() toggle_term_by_num(1) end, keymap_opts) 376 | vim.keymap.set({ "n", "t", 'i' }, "", function() toggle_term_by_num(2) end, keymap_opts) 377 | vim.keymap.set({ "n", "t", 'i' }, "", function() toggle_term_by_num(3) end, keymap_opts) 378 | vim.keymap.set({ "n", "t", 'i' }, "j", function() toggle_last_term() end, keymap_opts) 379 | end 380 | } 381 | -------------------------------------------------------------------------------- /nvim/lua/plugins/treesitter.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'nvim-treesitter/nvim-treesitter-context', 4 | event = "VeryLazy", 5 | config = function() 6 | vim.cmd [[ 7 | hi! link TreesitterContextBottom Whitespace 8 | hi! link TreesitterContextLineNumberBottom Whitespace 9 | hi! link TreesitterContextLineNumber Whitespace 10 | hi! TreesitterContextBottom gui=underdouble guisp=#51576d 11 | hi! TreesitterContextLineNumberBottom gui=underdouble guisp=#51576d 12 | ]] 13 | end 14 | }, 15 | { 16 | "nvim-treesitter/nvim-treesitter", 17 | enabled = true, 18 | event = "VeryLazy", 19 | build = ":TSUpdate", 20 | config = function() 21 | local treesitter = require("nvim-treesitter.configs") 22 | treesitter.setup { 23 | auto_install = true, 24 | highlight = { 25 | enable = true, 26 | additional_vim_regex_highlighting = { "ruby", "elixir" }, 27 | use_languagetree = false, 28 | disable = { "dockerfile" }, 29 | }, 30 | indent = { 31 | enable = true, -- very slow if enabled, use blink indent instead 32 | -- disable = { "ruby", "elixir" }, 33 | }, 34 | ensure_installed = { 35 | "c", 36 | "html", 37 | "lua", 38 | "yaml", 39 | "vim", 40 | "vimdoc", 41 | -- "markdown", 42 | -- "markdown_inline", 43 | "tsx", 44 | "lua", 45 | "css", 46 | "ruby", 47 | "json", 48 | "javascript", 49 | "typescript", 50 | "tsx", 51 | "go", 52 | "python", 53 | }, 54 | } 55 | end, 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /nvim/lua/plugins/ui.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'nvim-lualine/lualine.nvim', 4 | dependencies = { 'nvim-tree/nvim-web-devicons' }, 5 | event = "VeryLazy", 6 | enabled = true, 7 | config = function() 8 | require('lualine').setup { 9 | options = { 10 | theme = 'catppuccin' 11 | }, 12 | sections = { 13 | lualine_a = {}, 14 | lualine_b = { { 'filename', path = 4 } }, 15 | lualine_c = { '%=', }, lualine_x = {}, 16 | lualine_y = { 'progress' }, 17 | lualine_z = { 18 | }, 19 | }, 20 | inactive_sections = { 21 | lualine_a = { { 'filename', path = 4 } }, 22 | lualine_b = {}, 23 | lualine_c = {}, 24 | lualine_x = {}, 25 | lualine_y = {}, 26 | lualine_z = { 'location' }, 27 | }, 28 | tabline = {}, 29 | extensions = {}, 30 | } 31 | end 32 | }, 33 | } 34 | -------------------------------------------------------------------------------- /nvim/lua/settings.lua: -------------------------------------------------------------------------------- 1 | local opt = vim.opt 2 | 3 | vim.g.mapleader = " " 4 | vim.g.maplocalleader = "\\" 5 | vim.opt.cursorline = false 6 | vim.o.splitright = true 7 | vim.o.splitbelow = true 8 | opt.number = false 9 | opt.relativenumber = true -- for white spaces 10 | opt.signcolumn = "yes" 11 | opt.autoread = true 12 | opt.wildmenu = true 13 | 14 | -- Integration with the system clipboard 15 | opt.clipboard = { "unnamed", "unnamedplus" } 16 | 17 | -- Navigation 18 | opt.scrolloff = 3 -- Lines to scroll when cursor leaves screen 19 | opt.sidescrolloff = 3 -- Lines to scroll horizontally 20 | 21 | -- Backups 22 | opt.backup = true 23 | opt.backupdir = { "~/.vim-tmp", "~/.tmp", "~/tmp", "/var/tmp", "/tmp" } 24 | opt.backupskip = { "/tmp/*", "/private/tmp/*" } 25 | opt.writebackup = true 26 | 27 | -- Undo & History 28 | opt.undofile = true 29 | opt.undolevels = 1000 30 | opt.undoreload = 10000 31 | opt.undodir = vim.fn.expand("~") .. "/.local/share/nvim/undo" 32 | opt.shada = { "!", "'1000", "<50", "s10", "h" } -- Increase the shadafile size so that history is longer 33 | 34 | opt.hlsearch = true 35 | opt.incsearch = true 36 | opt.autoindent = true 37 | opt.smartindent = true 38 | opt.hidden = true 39 | 40 | -- Indentation 41 | opt.expandtab = true 42 | opt.shiftwidth = 2 43 | opt.tabstop = 2 44 | opt.softtabstop = 2 45 | opt.path = "**" 46 | 47 | -- Ignore some folders and files with find 48 | opt.wildignore = { 49 | "**/node_modules/**", "**/coverage/**", "**/.idea/**", "**/.git/**", 50 | "**/.nuxt/**" 51 | } 52 | 53 | opt.wrap = false 54 | vim.api.nvim_set_option_value("updatetime", 100, {}) 55 | vim.api.nvim_set_option_value("synmaxcol", 200, {}) 56 | vim.opt.updatetime = 100 57 | 58 | opt.ignorecase = true 59 | opt.showmatch = true 60 | opt.termguicolors = true 61 | 62 | vim.cmd([[ 63 | hi! SignColumn guibg=NONE 64 | set shortmess+=W 65 | set noswapfile 66 | ]]) 67 | 68 | vim.cmd [[ 69 | augroup highlight_yank 70 | autocmd! 71 | au TextYankPost * silent! lua vim.highlight.on_yank { higroup='IncSearch', timeout=200 } 72 | augroup END 73 | ]] 74 | 75 | vim.g.netrw_banner = 0 -- Disables the Netrw banner. Press 'I' to toggle. 76 | vim.g.netrw_liststyle = 3 -- Sets the view to treeview. 77 | vim.opt_local.conceallevel = 2 78 | vim.o.conceallevel = 2 79 | vim.opt.fillchars = { eob = ' ' } -- remove ~ at end of buffer 80 | vim.opt.guicursor = "i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150" 81 | 82 | vim.cmd [[ 83 | set shell=/bin/zsh 84 | ]] 85 | 86 | vim.o.jumpoptions = "view" 87 | 88 | 89 | vim.cmd [[ 90 | " Save current view settings on a per-window, per-buffer basis. 91 | function! AutoSaveWinView() 92 | if !exists("w:SavedBufView") 93 | let w:SavedBufView = {} 94 | endif 95 | let w:SavedBufView[bufnr("%")] = winsaveview() 96 | endfunction 97 | 98 | " Restore current view settings. 99 | function! AutoRestoreWinView() 100 | let buf = bufnr("%") 101 | if exists("w:SavedBufView") && has_key(w:SavedBufView, buf) 102 | let v = winsaveview() 103 | let atStartOfFile = v.lnum == 1 && v.col == 0 104 | if atStartOfFile && !&diff 105 | call winrestview(w:SavedBufView[buf]) 106 | endif 107 | unlet w:SavedBufView[buf] 108 | endif 109 | endfunction 110 | 111 | autocmd BufLeave * call AutoSaveWinView() 112 | autocmd BufEnter * call AutoRestoreWinView() 113 | ]] 114 | 115 | vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI", "BufEnter" }, { 116 | group = vim.api.nvim_create_augroup("ScrollOffEOF", {}), 117 | callback = function() 118 | local win_h = vim.api.nvim_win_get_height(0) 119 | local off = math.min(vim.o.scrolloff, math.floor(win_h / 2)) 120 | local dist = vim.fn.line "$" - vim.fn.line "." 121 | local rem = vim.fn.line "w$" - vim.fn.line "w0" + 1 122 | if dist < off and win_h - rem + dist < off then 123 | local view = vim.fn.winsaveview() 124 | view.topline = view.topline + off - (win_h - rem + dist) 125 | vim.fn.winrestview(view) 126 | end 127 | end, 128 | }) 129 | -------------------------------------------------------------------------------- /tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | unbind C-b 2 | set -g prefix C-s 3 | set -g base-index 1 4 | set -s extended-keys on 5 | setw -g pane-base-index 1 6 | setw -g mode-keys vi 7 | set-option -g default-shell /bin/zsh 8 | set-option -g renumber-windows on 9 | bind -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" 10 | 11 | set -g focus-events on 12 | set -s escape-time 0 13 | set -g mouse on 14 | bind-key r source-file ~/.config/tmux/tmux.conf \; display-message "tmux.conf reloaded" 15 | 16 | # split with same working dir 17 | bind "%" split-window -h -c '#{pane_current_path}' 18 | bind '"' split-window -v -c '#{pane_current_path}' 19 | 20 | # Setup 'v' to begin selection as in Vim 21 | bind-key -T copy-mode-vi 'v' send -X begin-selection 22 | bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel 23 | 24 | bind-key -T copy-mode-vi / command-prompt -i -p "search down" "send -X search-forward-incremental \"%%%\"" 25 | bind-key -T copy-mode-vi ? command-prompt -i -p "search up" "send -X search-backward-incremental \"%%%\"" 26 | bind-key -T copy-mode-vi Escape send -X clear-selection 27 | 28 | # popup window 29 | # follow https://github.com/ghostty-org/ghostty/issues/5917 30 | set -g popup-border-lines double 31 | bind-key j run '(source ~/.config/tmux/tmux.sh && pouptmux) || true' 32 | bind-key g run '(source ~/.config/tmux/tmux.sh && poptmuxgit) || true' 33 | 34 | # theme 35 | set-option -g status-position top 36 | set -g default-terminal 'xterm-ghostty' 37 | set -gas terminal-override ',xterm-ghostty:Ms=\E]52;%p1%s;%p2%s\007' 38 | set -g @catppuccin_flavor "frappe" 39 | set -g status-right-length 100 40 | set -g status-left-length 100 41 | set -g status-left "" 42 | set -g status-right "" 43 | set-option -g allow-rename off 44 | set -g @catppuccin_status_background "none" 45 | set -g @catppuccin_window_status_style "basic" 46 | set -ogq @catppuccin_window_text "" 47 | set -ogq @catppuccin_window_number " #I " 48 | set -ogq @catppuccin_window_current_number " #I " 49 | set -ogq @catppuccin_window_current_text "" 50 | 51 | 52 | set -g @catppuccin_window_status_style "custom" 53 | set -g @catppuccin_window_left_separator "" 54 | set -g @catppuccin_window_middle_separator "" 55 | set -g @catppuccin_window_right_separator "" 56 | run ~/.tmux/plugins/catppuccin/tmux/catppuccin.tmux 57 | -------------------------------------------------------------------------------- /tmux/tmux.sh: -------------------------------------------------------------------------------- 1 | get_tmux_pane_optimal_width() { 2 | outer_width=$(tmux display-message -p "#{window_width}") 3 | if [[ $outer_width -gt 150 ]]; then 4 | echo "80%" 5 | else 6 | echo "95%" 7 | fi 8 | } 9 | 10 | pouptmux() { 11 | width=$(get_tmux_pane_optimal_width) 12 | height=${2:-80%} 13 | session_name=$(tmux list-panes -t "$TMUX_PANE" -F '#S' | head -n1) 14 | window_index=$(tmux display-message -p '#I') 15 | popup_name="${session_name}_${window_index}" 16 | if [[ "$(tmux display-message -p -F "#{session_name}")" == _* ]]; then 17 | tmux detach-client 18 | else 19 | p_session_name="_${popup_name}" 20 | tmux display-popup -d '#{pane_current_path}' -xC -yC -w$width -h$height -E "tmux attach -t ${p_session_name} || tmux new -s ${p_session_name}" 21 | fi 22 | } 23 | 24 | poptmuxgit() { 25 | width=$(get_tmux_pane_optimal_width) 26 | height=${2:-80%} 27 | session_name=$(tmux list-panes -t "$TMUX_PANE" -F '#S' | head -n1) 28 | window_index=$(tmux display-message -p '#I') 29 | popup_name="${session_name}_${window_index}" 30 | if [[ "$(tmux display-message -p -F "#{session_name}")" == _* ]]; then 31 | tmux detach-client 32 | else 33 | p_session_name="_${popup_name}_git" 34 | tmux display-popup -d '#{pane_current_path}' -xC -yC -w$width -h$height -E "tmux attach -t ${p_session_name} || tmux new -s ${p_session_name} lazygit && tmux set-option -t ${p_session_name} status off" 35 | fi 36 | } 37 | 38 | poptmuxyazi() { 39 | width=$(echo "95%") 40 | height=${2:-80%} 41 | session_name=$(tmux list-panes -t "$TMUX_PANE" -F '#S' | head -n1) 42 | window_index=$(tmux display-message -p '#I') 43 | popup_name="${session_name}_${window_index}" 44 | if [[ "$(tmux display-message -p -F "#{session_name}")" == _* ]]; then 45 | tmux detach-client 46 | else 47 | p_session_name="_${popup_name}_yazi" 48 | tmux display-popup -d '#{pane_current_path}' -xC -yC -w$width -h$height -E "tmux set-option -t ${p_session_name} status off && tmux attach -t ${p_session_name} || tmux new -s ${p_session_name} yazi" 49 | fi 50 | } 51 | -------------------------------------------------------------------------------- /zsh/.gitignore: -------------------------------------------------------------------------------- 1 | .zsh_sessions 2 | -------------------------------------------------------------------------------- /zsh/.zcompcache/composer-pkgs: -------------------------------------------------------------------------------- 1 | _composer_cache_pkgs=( ${(Q)"${(z)$(<<\EO:_composer_cache_pkgs 2 | 3 | EO:_composer_cache_pkgs 4 | )}"} ) 5 | -------------------------------------------------------------------------------- /zsh/.zcompdump: -------------------------------------------------------------------------------- 1 | #files: 966 version: 5.9 2 | 3 | _comps=( 4 | '-' '_precommand' 5 | '-array-value-' '_value' 6 | '-assign-parameter-' '_assign' 7 | '-brace-parameter-' '_brace_parameter' 8 | '-command-' '_autocd' 9 | '-command-line-' '_normal' 10 | '-condition-' '_condition' 11 | '-default-' '_default' 12 | '-equal-' '_equal' 13 | '-first-' '_first' 14 | '-math-' '_math' 15 | '-parameter-' '_parameter' 16 | '-redirect-' '_redirect' 17 | '-redirect-,-default-,-default-' '_files' 18 | '-redirect-,<,bunzip2' '_bzip2' 19 | '-redirect-,<,bzip2' '_bzip2' 20 | '-redirect-,<,compress' '_compress' 21 | '-redirect-,<,gunzip' '_gzip' 22 | '-redirect-,<,gzip' '_gzip' 23 | '-redirect-,<,uncompress' '_compress' 24 | '-redirect-,<,unxz' '_xz' 25 | '-redirect-,<,xz' '_xz' 26 | '-redirect-,>,bzip2' '_bzip2' 27 | '-redirect-,>,compress' '_compress' 28 | '-redirect-,>,gzip' '_gzip' 29 | '-redirect-,>,xz' '_xz' 30 | '-subscript-' '_subscript' 31 | '-tilde-' '_tilde' 32 | '-value-' '_value' 33 | '-value-,-default-,-command-' '_zargs' 34 | '-value-,-default-,-default-' '_value' 35 | '-value-,ADB_TRACE,-default-' '_adb' 36 | '-value-,ANDROID_LOG_TAGS,-default-' '_adb' 37 | '-value-,ANDROID_SERIAL,-default-' '_adb' 38 | '-value-,ANSIBLE_INVENTORY_ENABLED,-default-' '_ansible' 39 | '-value-,ANSIBLE_STDOUT_CALLBACK,-default-' '_ansible' 40 | '-value-,ANT_ARGS,-default-' '_ant' 41 | '-value-,CFLAGS,-default-' '_gcc' 42 | '-value-,CPPFLAGS,-default-' '_gcc' 43 | '-value-,CXXFLAGS,-default-' '_gcc' 44 | '-value-,DISPLAY,-default-' '_x_display' 45 | '-value-,GREP_OPTIONS,-default-' '_grep' 46 | '-value-,GZIP,-default-' '_gzip' 47 | '-value-,LANG,-default-' '_locales' 48 | '-value-,LANGUAGE,-default-' '_locales' 49 | '-value-,LDFLAGS,-default-' '_gcc' 50 | '-value-,LD_DEBUG,-default-' '_ld_debug' 51 | '-value-,LESS,-default-' '_less' 52 | '-value-,LESSCHARSET,-default-' '_less' 53 | '-value-,LOOPDEV_DEBUG,-default-' '_losetup' 54 | '-value-,LPDEST,-default-' '_printers' 55 | '-value-,MPD_HOST,-default' '_mpc' 56 | '-value-,P4CLIENT,-default-' '_perforce' 57 | '-value-,P4MERGE,-default-' '_perforce' 58 | '-value-,P4PORT,-default-' '_perforce' 59 | '-value-,P4USER,-default-' '_perforce' 60 | '-value-,PERLDOC,-default-' '_perldoc' 61 | '-value-,PRINTER,-default-' '_printers' 62 | '-value-,PROMPT,-default-' '_ps1234' 63 | '-value-,PROMPT2,-default-' '_ps1234' 64 | '-value-,PROMPT3,-default-' '_ps1234' 65 | '-value-,PROMPT4,-default-' '_ps1234' 66 | '-value-,PS1,-default-' '_ps1234' 67 | '-value-,PS2,-default-' '_ps1234' 68 | '-value-,PS3,-default-' '_ps1234' 69 | '-value-,PS4,-default-' '_ps1234' 70 | '-value-,RPROMPT,-default-' '_ps1234' 71 | '-value-,RPROMPT2,-default-' '_ps1234' 72 | '-value-,RPS1,-default-' '_ps1234' 73 | '-value-,RPS2,-default-' '_ps1234' 74 | '-value-,SPROMPT,-default-' '_ps1234' 75 | '-value-,TERM,-default-' '_terminals' 76 | '-value-,TERMINFO_DIRS,-default-' '_dir_list' 77 | '-value-,TZ,-default-' '_time_zone' 78 | '-value-,VALGRIND_OPTS,-default-' '_valgrind' 79 | '-value-,WWW_HOME,-default-' '_urls' 80 | '-value-,XML_CATALOG_FILES,-default-' '_xmlsoft' 81 | '-value-,XZ_DEFAULTS,-default-' '_xz' 82 | '-value-,XZ_OPT,-default-' '_xz' 83 | '-vared-' '_in_vared' 84 | '-zcalc-line-' '_zcalc_line' 85 | '.' '_source' 86 | '5g' '_go' 87 | '5l' '_go' 88 | '6g' '_go' 89 | '6l' '_go' 90 | '8g' '_go' 91 | '8l' '_go' 92 | 'Mail' '_mail' 93 | 'Mosaic' '_webbrowser' 94 | 'SuSEconfig' '_SUSEconfig' 95 | '_arguments' '__arguments' 96 | 'a2dismod' '_a2utils' 97 | 'a2dissite' '_a2utils' 98 | 'a2enmod' '_a2utils' 99 | 'a2ensite' '_a2utils' 100 | 'a2ps' '_a2ps' 101 | 'aaaa' '_hosts' 102 | 'aap' '_aap' 103 | 'abcde' '_abcde' 104 | 'ack' '_ack' 105 | 'ack-grep' '_ack' 106 | 'ack-standalone' '_ack' 107 | 'ack2' '_ack' 108 | 'acpi' '_acpi' 109 | 'acpitool' '_acpitool' 110 | 'acroread' '_acroread' 111 | 'adb' '_adb' 112 | 'add-zle-hook-widget' '_add-zle-hook-widget' 113 | 'add-zsh-hook' '_add-zsh-hook' 114 | 'admin' '_sccs' 115 | 'ali' '_mh' 116 | 'alias' '_alias' 117 | 'amaya' '_webbrowser' 118 | 'analyseplugin' '_analyseplugin' 119 | 'animate' '_imagemagick' 120 | 'anno' '_mh' 121 | 'ansible' '_ansible' 122 | 'ansible-config' '_ansible' 123 | 'ansible-console' '_ansible' 124 | 'ansible-doc' '_ansible' 125 | 'ansible-galaxy' '_ansible' 126 | 'ansible-inventory' '_ansible' 127 | 'ansible-playbook' '_ansible' 128 | 'ansible-pull' '_ansible' 129 | 'ansible-vault' '_ansible' 130 | 'ant' '_ant' 131 | 'antiword' '_antiword' 132 | 'aodh' '_openstack' 133 | 'aoss' '_precommand' 134 | 'apache2ctl' '_apachectl' 135 | 'apachectl' '_apachectl' 136 | 'aplay' '_alsa-utils' 137 | 'apm' '_apm' 138 | 'appletviewer' '_java' 139 | 'apropos' '_man' 140 | 'apt' '_apt' 141 | 'apt-cache' '_apt' 142 | 'apt-cdrom' '_apt' 143 | 'apt-config' '_apt' 144 | 'apt-file' '_apt-file' 145 | 'apt-get' '_apt' 146 | 'apt-mark' '_apt' 147 | 'apt-move' '_apt-move' 148 | 'apt-show-versions' '_apt-show-versions' 149 | 'aptitude' '_aptitude' 150 | 'apvlv' '_pdf' 151 | 'arduino-ctags' '_ctags' 152 | 'arecord' '_alsa-utils' 153 | 'arena' '_webbrowser' 154 | 'arp' '_arp' 155 | 'arping' '_arping' 156 | 'asciidoctor' '_asciidoctor' 157 | 'asciinema' '_asciinema' 158 | 'ash' '_sh' 159 | 'at' '_at' 160 | 'atq' '_at' 161 | 'atrm' '_at' 162 | 'attr' '_attr' 163 | 'augtool' '_augeas' 164 | 'auto-apt' '_auto-apt' 165 | 'autoload' '_typeset' 166 | 'avahi-browse' '_avahi' 167 | 'avahi-browse-domains' '_avahi' 168 | 'avahi-resolve' '_avahi' 169 | 'avahi-resolve-address' '_avahi' 170 | 'avahi-resolve-host-name' '_avahi' 171 | 'awk' '_awk' 172 | 'axi-cache' '_axi-cache' 173 | 'b2sum' '_md5sum' 174 | 'barbican' '_openstack' 175 | 'base32' '_base64' 176 | 'base64' '_base64' 177 | 'basename' '_basename' 178 | 'basenc' '_basenc' 179 | 'bash' '_bash' 180 | 'batch' '_at' 181 | 'baz' '_baz' 182 | 'beadm' '_beadm' 183 | 'beep' '_beep' 184 | 'bg' '_jobs_bg' 185 | 'bibtex' '_bibtex' 186 | 'bindkey' '_bindkey' 187 | 'bison' '_bison' 188 | 'bmake' '_make' 189 | 'bogofilter' '_bogofilter' 190 | 'bogotune' '_bogofilter' 191 | 'bogoutil' '_bogofilter' 192 | 'bpython' '_bpython' 193 | 'bpython-gtk' '_bpython' 194 | 'bpython-urwid' '_bpython' 195 | 'bpython2' '_bpython' 196 | 'bpython2-gtk' '_bpython' 197 | 'bpython2-urwid' '_bpython' 198 | 'bpython3' '_bpython' 199 | 'bpython3-gtk' '_bpython' 200 | 'bpython3-urwid' '_bpython' 201 | 'brctl' '_brctl' 202 | 'bsdconfig' '_bsdconfig' 203 | 'bsdgrep' '_grep' 204 | 'bsdinstall' '_bsdinstall' 205 | 'bsdtar' '_tar' 206 | 'btdownloadcurses' '_bittorrent' 207 | 'btdownloadgui' '_bittorrent' 208 | 'btdownloadheadless' '_bittorrent' 209 | 'btlaunchmany' '_bittorrent' 210 | 'btlaunchmanycurses' '_bittorrent' 211 | 'btmakemetafile' '_bittorrent' 212 | 'btreannounce' '_bittorrent' 213 | 'btrename' '_bittorrent' 214 | 'btrfs' '_btrfs' 215 | 'bts' '_bts' 216 | 'btshowmetainfo' '_bittorrent' 217 | 'bttrack' '_bittorrent' 218 | 'bug' '_bug' 219 | 'buildhash' '_ispell' 220 | 'builtin' '_builtin' 221 | 'bunzip2' '_bzip2' 222 | 'burst' '_mh' 223 | 'bzcat' '_bzip2' 224 | 'bzegrep' '_grep' 225 | 'bzfgrep' '_grep' 226 | 'bzgrep' '_grep' 227 | 'bzip2' '_bzip2' 228 | 'bzip2recover' '_bzip2' 229 | 'bzr' '_bzr' 230 | 'c++' '_gcc' 231 | 'cabal' '_cabal' 232 | 'caffeinate' '_caffeinate' 233 | 'cal' '_cal' 234 | 'calendar' '_calendar' 235 | 'cat' '_cat' 236 | 'catchsegv' '_precommand' 237 | 'cc' '_gcc' 238 | 'ccal' '_ccal' 239 | 'cd' '_cd' 240 | 'cdbs-edit-patch' '_cdbs-edit-patch' 241 | 'cdc' '_sccs' 242 | 'cdcd' '_cdcd' 243 | 'cdr' '_cdr' 244 | 'cdrdao' '_cdrdao' 245 | 'cdrecord' '_cdrecord' 246 | 'ceilometer' '_openstack' 247 | 'certtool' '_gnutls' 248 | 'cftp' '_twisted' 249 | 'chage' '_users' 250 | 'chattr' '_chattr' 251 | 'chcon' '_chcon' 252 | 'chdir' '_cd' 253 | 'chflags' '_chflags' 254 | 'chfn' '_users' 255 | 'chgrp' '_chown' 256 | 'chimera' '_webbrowser' 257 | 'chkconfig' '_chkconfig' 258 | 'chkstow' '_stow' 259 | 'chmod' '_chmod' 260 | 'choom' '_choom' 261 | 'chown' '_chown' 262 | 'chpass' '_chsh' 263 | 'chroot' '_chroot' 264 | 'chrt' '_chrt' 265 | 'chsh' '_chsh' 266 | 'ci' '_rcs' 267 | 'cifsiostat' '_sysstat' 268 | 'cinder' '_openstack' 269 | 'ckeygen' '_twisted' 270 | 'cksum' '_cksum' 271 | 'clang' '_gcc' 272 | 'clang++' '_gcc' 273 | 'clay' '_clay' 274 | 'clear' '_nothing' 275 | 'cloudkitty' '_openstack' 276 | 'clusterdb' '_postgresql' 277 | 'cmp' '_cmp' 278 | 'co' '_rcs' 279 | 'code' '_code' 280 | 'column' '_column' 281 | 'comb' '_sccs' 282 | 'combine' '_imagemagick' 283 | 'combinediff' '_patchutils' 284 | 'comm' '_comm' 285 | 'command' '_command' 286 | 'comp' '_mh' 287 | 'compadd' '_compadd' 288 | 'compdef' '_compdef' 289 | 'composer' '_composer' 290 | 'composer.phar' '_composer' 291 | 'composite' '_imagemagick' 292 | 'compress' '_compress' 293 | 'conch' '_twisted' 294 | 'config.status' '_configure' 295 | 'configure' '_configure' 296 | 'convert' '_imagemagick' 297 | 'coreadm' '_coreadm' 298 | 'cowsay' '_cowsay' 299 | 'cowthink' '_cowsay' 300 | 'cp' '_cp' 301 | 'cpio' '_cpio' 302 | 'cplay' '_cplay' 303 | 'cpupower' '_cpupower' 304 | 'createdb' '_postgresql' 305 | 'createuser' '_postgresql' 306 | 'crontab' '_crontab' 307 | 'crsh' '_cssh' 308 | 'cryptsetup' '_cryptsetup' 309 | 'cscope' '_cscope' 310 | 'csh' '_sh' 311 | 'csplit' '_csplit' 312 | 'cssh' '_cssh' 313 | 'csup' '_csup' 314 | 'ctags' '_ctags' 315 | 'ctags-exuberant' '_ctags' 316 | 'ctags-universal' '_ctags' 317 | 'cu' '_cu' 318 | 'curl' '_curl' 319 | 'cut' '_cut' 320 | 'cvs' '_cvs' 321 | 'cvsup' '_cvsup' 322 | 'cygcheck' '_cygcheck' 323 | 'cygcheck.exe' '_cygcheck' 324 | 'cygpath' '_cygpath' 325 | 'cygpath.exe' '_cygpath' 326 | 'cygrunsrv' '_cygrunsrv' 327 | 'cygrunsrv.exe' '_cygrunsrv' 328 | 'cygserver' '_cygserver' 329 | 'cygserver.exe' '_cygserver' 330 | 'cygstart' '_cygstart' 331 | 'cygstart.exe' '_cygstart' 332 | 'dak' '_dak' 333 | 'darcs' '_darcs' 334 | 'dash' '_sh' 335 | 'date' '_date' 336 | 'dbus-launch' '_dbus' 337 | 'dbus-monitor' '_dbus' 338 | 'dbus-send' '_dbus' 339 | 'dch' '_debchange' 340 | 'dchroot' '_dchroot' 341 | 'dchroot-dsa' '_dchroot-dsa' 342 | 'dconf' '_dconf' 343 | 'dcop' '_dcop' 344 | 'dcopclient' '_dcop' 345 | 'dcopfind' '_dcop' 346 | 'dcopobject' '_dcop' 347 | 'dcopref' '_dcop' 348 | 'dcopstart' '_dcop' 349 | 'dcut' '_dcut' 350 | 'dd' '_dd' 351 | 'debchange' '_debchange' 352 | 'debcheckout' '_debcheckout' 353 | 'debdiff' '_debdiff' 354 | 'debfoster' '_debfoster' 355 | 'deborphan' '_deborphan' 356 | 'debsign' '_debsign' 357 | 'debsnap' '_debsnap' 358 | 'debuild' '_debuild' 359 | 'declare' '_typeset' 360 | 'defaults' '_defaults' 361 | 'delta' '_sccs' 362 | 'designate' '_openstack' 363 | 'devtodo' '_devtodo' 364 | 'df' '_df' 365 | 'dhclient' '_dhclient' 366 | 'dhclient3' '_dhclient' 367 | 'dhcpinfo' '_dhcpinfo' 368 | 'dict' '_dict' 369 | 'diff' '_diff' 370 | 'diff3' '_diff3' 371 | 'diffstat' '_diffstat' 372 | 'dig' '_dig' 373 | 'dillo' '_webbrowser' 374 | 'dircmp' '_directories' 375 | 'dirs' '_dirs' 376 | 'disable' '_disable' 377 | 'disown' '_jobs_fg' 378 | 'display' '_imagemagick' 379 | 'dist' '_mh' 380 | 'django-admin' '_django' 381 | 'django-admin.py' '_django' 382 | 'dkms' '_dkms' 383 | 'dladm' '_dladm' 384 | 'dlocate' '_dlocate' 385 | 'dmake' '_make' 386 | 'dmesg' '_dmesg' 387 | 'dmidecode' '_dmidecode' 388 | 'dnf' '_dnf' 389 | 'dnf-2' '_dnf' 390 | 'dnf-3' '_dnf' 391 | 'doas' '_doas' 392 | 'domainname' '_yp' 393 | 'dos2unix' '_dos2unix' 394 | 'dosdel' '_floppy' 395 | 'dosread' '_floppy' 396 | 'dpatch-edit-patch' '_dpatch-edit-patch' 397 | 'dpkg' '_dpkg' 398 | 'dpkg-buildpackage' '_dpkg-buildpackage' 399 | 'dpkg-cross' '_dpkg-cross' 400 | 'dpkg-deb' '_dpkg' 401 | 'dpkg-query' '_dpkg' 402 | 'dpkg-reconfigure' '_dpkg' 403 | 'dpkg-repack' '_dpkg-repack' 404 | 'dpkg-source' '_dpkg_source' 405 | 'dput' '_dput' 406 | 'drill' '_drill' 407 | 'dropbox' '_dropbox' 408 | 'dropdb' '_postgresql' 409 | 'dropuser' '_postgresql' 410 | 'dscverify' '_dscverify' 411 | 'dsh' '_dsh' 412 | 'dtrace' '_dtrace' 413 | 'dtruss' '_dtruss' 414 | 'du' '_du' 415 | 'dumpadm' '_dumpadm' 416 | 'dumper' '_dumper' 417 | 'dumper.exe' '_dumper' 418 | 'dupload' '_dupload' 419 | 'dvibook' '_dvi' 420 | 'dviconcat' '_dvi' 421 | 'dvicopy' '_dvi' 422 | 'dvidvi' '_dvi' 423 | 'dvipdf' '_dvi' 424 | 'dvips' '_dvi' 425 | 'dviselect' '_dvi' 426 | 'dvitodvi' '_dvi' 427 | 'dvitype' '_dvi' 428 | 'dwb' '_webbrowser' 429 | 'e2label' '_e2label' 430 | 'eatmydata' '_precommand' 431 | 'ecasound' '_ecasound' 432 | 'echotc' '_echotc' 433 | 'echoti' '_echoti' 434 | 'ed' '_ed' 435 | 'egrep' '_grep' 436 | 'elfdump' '_elfdump' 437 | 'elinks' '_elinks' 438 | 'emulate' '_emulate' 439 | 'enable' '_enable' 440 | 'enscript' '_enscript' 441 | 'entr' '_entr' 442 | 'env' '_env' 443 | 'eog' '_eog' 444 | 'epdfview' '_pdf' 445 | 'epsffit' '_psutils' 446 | 'erb' '_ruby' 447 | 'espeak' '_espeak' 448 | 'etags' '_etags' 449 | 'ethtool' '_ethtool' 450 | 'eu-nm' '_nm' 451 | 'eu-objdump' '_objdump' 452 | 'eu-readelf' '_readelf' 453 | 'eu-strings' '_strings' 454 | 'eval' '_precommand' 455 | 'eview' '_vim' 456 | 'evim' '_vim' 457 | 'evince' '_evince' 458 | 'ex' '_vi' 459 | 'exec' '_exec' 460 | 'expand' '_unexpand' 461 | 'explodepkg' '_pkgtool' 462 | 'export' '_typeset' 463 | 'express' '_webbrowser' 464 | 'extcheck' '_java' 465 | 'extractres' '_psutils' 466 | 'fakeroot' '_fakeroot' 467 | 'false' '_nothing' 468 | 'fc' '_fc' 469 | 'fc-list' '_xft_fonts' 470 | 'fc-match' '_xft_fonts' 471 | 'feh' '_feh' 472 | 'fetch' '_fetch' 473 | 'fetchmail' '_fetchmail' 474 | 'ffmpeg' '_ffmpeg' 475 | 'fg' '_jobs_fg' 476 | 'fgrep' '_grep' 477 | 'figlet' '_figlet' 478 | 'filterdiff' '_patchutils' 479 | 'find' '_find' 480 | 'findaffix' '_ispell' 481 | 'findmnt' '_findmnt' 482 | 'finger' '_finger' 483 | 'fink' '_fink' 484 | 'firefox' '_mozilla' 485 | 'fixdlsrps' '_psutils' 486 | 'fixfmps' '_psutils' 487 | 'fixmacps' '_psutils' 488 | 'fixpsditps' '_psutils' 489 | 'fixpspps' '_psutils' 490 | 'fixscribeps' '_psutils' 491 | 'fixtpps' '_psutils' 492 | 'fixwfwps' '_psutils' 493 | 'fixwpps' '_psutils' 494 | 'fixwwps' '_psutils' 495 | 'flac' '_flac' 496 | 'flex' '_flex' 497 | 'flex++' '_flex' 498 | 'flipdiff' '_patchutils' 499 | 'flist' '_mh' 500 | 'flists' '_mh' 501 | 'float' '_typeset' 502 | 'flowadm' '_flowadm' 503 | 'fmadm' '_fmadm' 504 | 'fmt' '_fmt' 505 | 'fmttest' '_mh' 506 | 'fned' '_zed' 507 | 'fnext' '_mh' 508 | 'fold' '_fold' 509 | 'folder' '_mh' 510 | 'folders' '_mh' 511 | 'fortune' '_fortune' 512 | 'forw' '_mh' 513 | 'fprev' '_mh' 514 | 'free' '_free' 515 | 'freebsd-make' '_make' 516 | 'freebsd-update' '_freebsd-update' 517 | 'freezer' '_openstack' 518 | 'fs_usage' '_fs_usage' 519 | 'fsh' '_fsh' 520 | 'fstat' '_fstat' 521 | 'ftp' '_hosts' 522 | 'functions' '_typeset' 523 | 'fuser' '_fuser' 524 | 'fusermount' '_fusermount' 525 | 'fw_update' '_fw_update' 526 | 'fwhois' '_whois' 527 | 'g++' '_gcc' 528 | 'galeon' '_webbrowser' 529 | 'gawk' '_awk' 530 | 'gb2sum' '_md5sum' 531 | 'gbase32' '_base64' 532 | 'gbase64' '_base64' 533 | 'gbasename' '_basename' 534 | 'gcat' '_cat' 535 | 'gcc' '_gcc' 536 | 'gccgo' '_go' 537 | 'gchgrp' '_chown' 538 | 'gchmod' '_chmod' 539 | 'gchown' '_chown' 540 | 'gchroot' '_chroot' 541 | 'gcksum' '_cksum' 542 | 'gcmp' '_cmp' 543 | 'gcomm' '_comm' 544 | 'gcore' '_gcore' 545 | 'gcp' '_cp' 546 | 'gcut' '_cut' 547 | 'gdate' '_date' 548 | 'gdb' '_gdb' 549 | 'gdd' '_dd' 550 | 'gdf' '_df' 551 | 'gdiff' '_diff' 552 | 'gdu' '_du' 553 | 'geany' '_geany' 554 | 'gegrep' '_grep' 555 | 'gem' '_gem' 556 | 'genisoimage' '_genisoimage' 557 | 'genv' '_env' 558 | 'get' '_sccs' 559 | 'getafm' '_psutils' 560 | 'getclip' '_getclip' 561 | 'getclip.exe' '_getclip' 562 | 'getconf' '_getconf' 563 | 'getent' '_getent' 564 | 'getfacl' '_getfacl' 565 | 'getfacl.exe' '_getfacl' 566 | 'getfattr' '_attr' 567 | 'getmail' '_getmail' 568 | 'getopt' '_getopt' 569 | 'getopts' '_vars' 570 | 'gex' '_vim' 571 | 'gexpand' '_unexpand' 572 | 'gfgrep' '_grep' 573 | 'gfind' '_find' 574 | 'gfmt' '_fmt' 575 | 'gfold' '_fold' 576 | 'ggetopt' '_getopt' 577 | 'ggrep' '_grep' 578 | 'ggv' '_gnome-gv' 579 | 'ghead' '_head' 580 | 'ghostscript' '_ghostscript' 581 | 'ghostview' '_pspdf' 582 | 'gid' '_id' 583 | 'ginstall' '_install' 584 | 'git' '_git' 585 | 'git-buildpackage' '_git-buildpackage' 586 | 'git-cvsserver' '_git' 587 | 'git-receive-pack' '_git' 588 | 'git-shell' '_git' 589 | 'git-upload-archive' '_git' 590 | 'git-upload-pack' '_git' 591 | 'gitk' '_git' 592 | 'gjoin' '_join' 593 | 'glance' '_openstack' 594 | 'gln' '_ln' 595 | 'global' '_global' 596 | 'glocate' '_locate' 597 | 'gls' '_ls' 598 | 'gm' '_graphicsmagick' 599 | 'gmake' '_make' 600 | 'gmd5sum' '_md5sum' 601 | 'gmkdir' '_mkdir' 602 | 'gmkfifo' '_mkfifo' 603 | 'gmknod' '_mknod' 604 | 'gmktemp' '_mktemp' 605 | 'gmplayer' '_mplayer' 606 | 'gmv' '_mv' 607 | 'gnl' '_nl' 608 | 'gnocchi' '_openstack' 609 | 'gnome-gv' '_gnome-gv' 610 | 'gnumfmt' '_numfmt' 611 | 'gnupod_INIT' '_gnupod' 612 | 'gnupod_INIT.pl' '_gnupod' 613 | 'gnupod_addsong' '_gnupod' 614 | 'gnupod_addsong.pl' '_gnupod' 615 | 'gnupod_check' '_gnupod' 616 | 'gnupod_check.pl' '_gnupod' 617 | 'gnupod_search' '_gnupod' 618 | 'gnupod_search.pl' '_gnupod' 619 | 'gnutls-cli' '_gnutls' 620 | 'gnutls-cli-debug' '_gnutls' 621 | 'gnutls-serv' '_gnutls' 622 | 'god' '_od' 623 | 'gofmt' '_go' 624 | 'gpasswd' '_gpasswd' 625 | 'gpaste' '_paste' 626 | 'gpatch' '_patch' 627 | 'gpg' '_gpg' 628 | 'gpg-zip' '_gpg' 629 | 'gpg2' '_gpg' 630 | 'gpgv' '_gpg' 631 | 'gphoto2' '_gphoto2' 632 | 'gprintenv' '_printenv' 633 | 'gprof' '_gprof' 634 | 'gqview' '_gqview' 635 | 'gradle' '_gradle' 636 | 'gradlew' '_gradle' 637 | 'grail' '_webbrowser' 638 | 'greadlink' '_readlink' 639 | 'grep' '_grep' 640 | 'grep-excuses' '_grep-excuses' 641 | 'grepdiff' '_patchutils' 642 | 'grm' '_rm' 643 | 'grmdir' '_rmdir' 644 | 'groff' '_groff' 645 | 'groupadd' '_user_admin' 646 | 'groupdel' '_groups' 647 | 'groupmod' '_user_admin' 648 | 'groups' '_users' 649 | 'growisofs' '_growisofs' 650 | 'gs' '_ghostscript' 651 | 'gsbj' '_pspdf' 652 | 'gsdj' '_pspdf' 653 | 'gsdj500' '_pspdf' 654 | 'gsed' '_sed' 655 | 'gseq' '_seq' 656 | 'gsettings' '_gsettings' 657 | 'gsha1sum' '_md5sum' 658 | 'gsha224sum' '_md5sum' 659 | 'gsha256sum' '_md5sum' 660 | 'gsha384sum' '_md5sum' 661 | 'gsha512sum' '_md5sum' 662 | 'gshred' '_shred' 663 | 'gshuf' '_shuf' 664 | 'gslj' '_pspdf' 665 | 'gslp' '_pspdf' 666 | 'gsnd' '_pspdf' 667 | 'gsort' '_sort' 668 | 'gsplit' '_split' 669 | 'gstat' '_gstat' 670 | 'gstdbuf' '_stdbuf' 671 | 'gstrings' '_strings' 672 | 'gstty' '_stty' 673 | 'gsum' '_cksum' 674 | 'gtac' '_tac' 675 | 'gtail' '_tail' 676 | 'gtar' '_tar' 677 | 'gtee' '_tee' 678 | 'gtimeout' '_timeout' 679 | 'gtouch' '_touch' 680 | 'gtr' '_tr' 681 | 'gtty' '_tty' 682 | 'guilt' '_guilt' 683 | 'guilt-add' '_guilt' 684 | 'guilt-applied' '_guilt' 685 | 'guilt-delete' '_guilt' 686 | 'guilt-files' '_guilt' 687 | 'guilt-fold' '_guilt' 688 | 'guilt-fork' '_guilt' 689 | 'guilt-header' '_guilt' 690 | 'guilt-help' '_guilt' 691 | 'guilt-import' '_guilt' 692 | 'guilt-import-commit' '_guilt' 693 | 'guilt-init' '_guilt' 694 | 'guilt-new' '_guilt' 695 | 'guilt-next' '_guilt' 696 | 'guilt-patchbomb' '_guilt' 697 | 'guilt-pop' '_guilt' 698 | 'guilt-prev' '_guilt' 699 | 'guilt-push' '_guilt' 700 | 'guilt-rebase' '_guilt' 701 | 'guilt-refresh' '_guilt' 702 | 'guilt-rm' '_guilt' 703 | 'guilt-series' '_guilt' 704 | 'guilt-status' '_guilt' 705 | 'guilt-top' '_guilt' 706 | 'guilt-unapplied' '_guilt' 707 | 'guname' '_uname' 708 | 'gunexpand' '_unexpand' 709 | 'guniq' '_uniq' 710 | 'gunzip' '_gzip' 711 | 'guptime' '_uptime' 712 | 'gv' '_gv' 713 | 'gview' '_vim' 714 | 'gvim' '_vim' 715 | 'gvimdiff' '_vim' 716 | 'gwc' '_wc' 717 | 'gwho' '_who' 718 | 'gxargs' '_xargs' 719 | 'gzcat' '_gzip' 720 | 'gzegrep' '_grep' 721 | 'gzfgrep' '_grep' 722 | 'gzgrep' '_grep' 723 | 'gzilla' '_webbrowser' 724 | 'gzip' '_gzip' 725 | 'hash' '_hash' 726 | 'hd' '_hexdump' 727 | 'hdiutil' '_hdiutil' 728 | 'head' '_head' 729 | 'heat' '_openstack' 730 | 'help' '_sccs' 731 | 'hexdump' '_hexdump' 732 | 'hilite' '_precommand' 733 | 'histed' '_zed' 734 | 'history' '_fc' 735 | 'host' '_host' 736 | 'hostname' '_hostname' 737 | 'hotjava' '_webbrowser' 738 | 'htop' '_htop' 739 | 'hwinfo' '_hwinfo' 740 | 'iceweasel' '_mozilla' 741 | 'icombine' '_ispell' 742 | 'iconv' '_iconv' 743 | 'iconvconfig' '_iconvconfig' 744 | 'id' '_id' 745 | 'identify' '_imagemagick' 746 | 'ifconfig' '_ifconfig' 747 | 'ifdown' '_net_interfaces' 748 | 'iftop' '_iftop' 749 | 'ifup' '_net_interfaces' 750 | 'ijoin' '_ispell' 751 | 'import' '_imagemagick' 752 | 'inc' '_mh' 753 | 'includeres' '_psutils' 754 | 'inetadm' '_inetadm' 755 | 'info' '_texinfo' 756 | 'infocmp' '_terminals' 757 | 'initctl' '_initctl' 758 | 'initdb' '_postgresql' 759 | 'insmod' '_modutils' 760 | 'install' '_install' 761 | 'install-info' '_texinfo' 762 | 'installpkg' '_pkgtool' 763 | 'integer' '_typeset' 764 | 'interdiff' '_patchutils' 765 | 'invoke-rc.d' '_invoke-rc.d' 766 | 'ionice' '_ionice' 767 | 'iostat' '_iostat' 768 | 'ip' '_ip' 769 | 'ip6tables' '_iptables' 770 | 'ip6tables-restore' '_iptables' 771 | 'ip6tables-save' '_iptables' 772 | 'ipadm' '_ipadm' 773 | 'ipfw' '_ipfw' 774 | 'ipkg' '_opkg' 775 | 'ipsec' '_ipsec' 776 | 'ipset' '_ipset' 777 | 'iptables' '_iptables' 778 | 'iptables-restore' '_iptables' 779 | 'iptables-save' '_iptables' 780 | 'irb' '_ruby' 781 | 'ironic' '_openstack' 782 | 'irssi' '_irssi' 783 | 'isag' '_sysstat' 784 | 'ispell' '_ispell' 785 | 'iwconfig' '_iwconfig' 786 | 'jadetex' '_tex' 787 | 'jail' '_jail' 788 | 'jar' '_java' 789 | 'jarsigner' '_java' 790 | 'java' '_java' 791 | 'javac' '_java' 792 | 'javadoc' '_java' 793 | 'javah' '_java' 794 | 'javap' '_java' 795 | 'jdb' '_java' 796 | 'jexec' '_jexec' 797 | 'jls' '_jls' 798 | 'jobs' '_jobs_builtin' 799 | 'joe' '_joe' 800 | 'join' '_join' 801 | 'jot' '_jot' 802 | 'jq' '_jq' 803 | 'kdeconnect-cli' '_kdeconnect' 804 | 'kdump' '_kdump' 805 | 'keystone' '_openstack' 806 | 'keytool' '_java' 807 | 'kfmclient' '_kfmclient' 808 | 'kill' '_kill' 809 | 'killall' '_killall' 810 | 'killall5' '_killall' 811 | 'kioclient' '_kfmclient' 812 | 'kldload' '_kld' 813 | 'kldunload' '_kld' 814 | 'knock' '_knock' 815 | 'konqueror' '_webbrowser' 816 | 'kpartx' '_kpartx' 817 | 'kpdf' '_pdf' 818 | 'ksh' '_sh' 819 | 'ksh88' '_sh' 820 | 'ksh93' '_sh' 821 | 'ktrace' '_ktrace' 822 | 'kvno' '_kvno' 823 | 'last' '_last' 824 | 'lastb' '_last' 825 | 'latex' '_tex' 826 | 'latexmk' '_tex' 827 | 'ldap' '_ldap' 828 | 'ldconfig' '_ldconfig' 829 | 'ldconfig.real' '_ldconfig' 830 | 'ldd' '_ldd' 831 | 'less' '_less' 832 | 'let' '_math' 833 | 'lftp' '_ncftp' 834 | 'lha' '_lha' 835 | 'light' '_webbrowser' 836 | 'lighty-disable-mod' '_lighttpd' 837 | 'lighty-enable-mod' '_lighttpd' 838 | 'limit' '_limit' 839 | 'links' '_links' 840 | 'links2' '_links' 841 | 'lintian' '_lintian' 842 | 'lintian-info' '_lintian' 843 | 'linux' '_uml' 844 | 'lldb' '_lldb' 845 | 'llvm-g++' '_gcc' 846 | 'llvm-gcc' '_gcc' 847 | 'llvm-objdump' '_objdump' 848 | 'llvm-otool' '_otool' 849 | 'ln' '_ln' 850 | 'loadkeys' '_loadkeys' 851 | 'local' '_typeset' 852 | 'locale' '_locale' 853 | 'localedef' '_localedef' 854 | 'locate' '_locate' 855 | 'logger' '_logger' 856 | 'logname' '_nothing' 857 | 'look' '_look' 858 | 'losetup' '_losetup' 859 | 'lp' '_lp' 860 | 'lpadmin' '_lp' 861 | 'lpinfo' '_lp' 862 | 'lpoptions' '_lp' 863 | 'lpq' '_lp' 864 | 'lpr' '_lp' 865 | 'lprm' '_lp' 866 | 'lpstat' '_lp' 867 | 'ls' '_ls' 868 | 'lsattr' '_lsattr' 869 | 'lsblk' '_lsblk' 870 | 'lscfg' '_lscfg' 871 | 'lsdev' '_lsdev' 872 | 'lsdiff' '_patchutils' 873 | 'lslv' '_lslv' 874 | 'lsmod' '_modutils' 875 | 'lsns' '_lsns' 876 | 'lsof' '_lsof' 877 | 'lspv' '_lspv' 878 | 'lsusb' '_lsusb' 879 | 'lsvg' '_lsvg' 880 | 'ltrace' '_ltrace' 881 | 'lua' '_lua' 882 | 'luarocks' '_luarocks' 883 | 'lynx' '_lynx' 884 | 'lz4' '_lz4' 885 | 'lz4c' '_lz4' 886 | 'lz4c32' '_lz4' 887 | 'lz4cat' '_lz4' 888 | 'lzcat' '_xz' 889 | 'lzma' '_xz' 890 | 'lzop' '_lzop' 891 | 'm-a' '_module-assistant' 892 | 'mac2unix' '_dos2unix' 893 | 'madison' '_madison' 894 | 'magnum' '_openstack' 895 | 'mail' '_mail' 896 | 'mailx' '_mail' 897 | 'make' '_make' 898 | 'make-kpkg' '_make-kpkg' 899 | 'makeinfo' '_texinfo' 900 | 'makepkg' '_pkgtool' 901 | 'man' '_man' 902 | 'manage.py' '_django' 903 | 'manila' '_openstack' 904 | 'mark' '_mh' 905 | 'mat' '_mat' 906 | 'mat2' '_mat2' 907 | 'matlab' '_matlab' 908 | 'mattrib' '_mtools' 909 | 'mcd' '_mtools' 910 | 'mcopy' '_mtools' 911 | 'md2' '_cksum' 912 | 'md4' '_cksum' 913 | 'md5' '_cksum' 914 | 'md5sum' '_md5sum' 915 | 'mdadm' '_mdadm' 916 | 'mdel' '_mtools' 917 | 'mdeltree' '_mtools' 918 | 'mdfind' '_mdfind' 919 | 'mdir' '_mtools' 920 | 'mdls' '_mdls' 921 | 'mdu' '_mtools' 922 | 'mdutil' '_mdutil' 923 | 'members' '_members' 924 | 'mencal' '_mencal' 925 | 'mere' '_mere' 926 | 'merge' '_rcs' 927 | 'mergechanges' '_mergechanges' 928 | 'metaflac' '_flac' 929 | 'mformat' '_mtools' 930 | 'mgv' '_pspdf' 931 | 'mhfixmsg' '_mh' 932 | 'mhlist' '_mh' 933 | 'mhmail' '_mh' 934 | 'mhn' '_mh' 935 | 'mhparam' '_mh' 936 | 'mhpath' '_mh' 937 | 'mhshow' '_mh' 938 | 'mhstore' '_mh' 939 | 'mii-tool' '_mii-tool' 940 | 'mistral' '_openstack' 941 | 'mixerctl' '_mixerctl' 942 | 'mkdir' '_mkdir' 943 | 'mkfifo' '_mkfifo' 944 | 'mkisofs' '_growisofs' 945 | 'mknod' '_mknod' 946 | 'mksh' '_sh' 947 | 'mkshortcut' '_mkshortcut' 948 | 'mkshortcut.exe' '_mkshortcut' 949 | 'mktemp' '_mktemp' 950 | 'mktunes' '_gnupod' 951 | 'mktunes.pl' '_gnupod' 952 | 'mkzsh' '_mkzsh' 953 | 'mkzsh.exe' '_mkzsh' 954 | 'mlabel' '_mtools' 955 | 'mlocate' '_locate' 956 | 'mmd' '_mtools' 957 | 'mmm' '_webbrowser' 958 | 'mmount' '_mtools' 959 | 'mmove' '_mtools' 960 | 'modinfo' '_modutils' 961 | 'modprobe' '_modutils' 962 | 'module' '_module' 963 | 'module-assistant' '_module-assistant' 964 | 'mogrify' '_imagemagick' 965 | 'monasca' '_openstack' 966 | 'mondoarchive' '_mondo' 967 | 'montage' '_imagemagick' 968 | 'moosic' '_moosic' 969 | 'mosh' '_mosh' 970 | 'mount' '_mount' 971 | 'mozilla' '_mozilla' 972 | 'mozilla-firefox' '_mozilla' 973 | 'mozilla-xremote-client' '_mozilla' 974 | 'mpc' '_mpc' 975 | 'mplayer' '_mplayer' 976 | 'mpstat' '_sysstat' 977 | 'mr' '_myrepos' 978 | 'mrd' '_mtools' 979 | 'mread' '_mtools' 980 | 'mren' '_mtools' 981 | 'msgchk' '_mh' 982 | 'mt' '_mt' 983 | 'mtn' '_monotone' 984 | 'mtoolstest' '_mtools' 985 | 'mtr' '_mtr' 986 | 'mtype' '_mtools' 987 | 'munchlist' '_ispell' 988 | 'mupdf' '_mupdf' 989 | 'murano' '_openstack' 990 | 'mush' '_mail' 991 | 'mutt' '_mutt' 992 | 'mv' '_mv' 993 | 'mvim' '_vim' 994 | 'mx' '_hosts' 995 | 'mysql' '_mysql_utils' 996 | 'mysqladmin' '_mysql_utils' 997 | 'mysqldiff' '_mysqldiff' 998 | 'mysqldump' '_mysql_utils' 999 | 'mysqlimport' '_mysql_utils' 1000 | 'mysqlshow' '_mysql_utils' 1001 | 'nail' '_mail' 1002 | 'native2ascii' '_java' 1003 | 'nautilus' '_nautilus' 1004 | 'nawk' '_awk' 1005 | 'nc' '_netcat' 1006 | 'ncal' '_cal' 1007 | 'ncftp' '_ncftp' 1008 | 'ncl' '_nedit' 1009 | 'nedit' '_nedit' 1010 | 'nedit-nc' '_nedit' 1011 | 'netcat' '_netcat' 1012 | 'netrik' '_webbrowser' 1013 | 'netscape' '_netscape' 1014 | 'netstat' '_netstat' 1015 | 'networksetup' '_networksetup' 1016 | 'neutron' '_openstack' 1017 | 'new' '_mh' 1018 | 'newgrp' '_groups' 1019 | 'next' '_mh' 1020 | 'nginx' '_nginx' 1021 | 'ngrep' '_ngrep' 1022 | 'nice' '_nice' 1023 | 'nkf' '_nkf' 1024 | 'nl' '_nl' 1025 | 'nm' '_nm' 1026 | 'nmap' '_nmap' 1027 | 'nmblookup' '_samba' 1028 | 'nmcli' '_networkmanager' 1029 | 'nocorrect' '_precommand' 1030 | 'noglob' '_precommand' 1031 | 'nohup' '_precommand' 1032 | 'nova' '_openstack' 1033 | 'npm' '_npm' 1034 | 'ns' '_hosts' 1035 | 'nsenter' '_nsenter' 1036 | 'nslookup' '_nslookup' 1037 | 'ntalk' '_other_accounts' 1038 | 'numfmt' '_numfmt' 1039 | 'nvim' '_vim' 1040 | 'nvram' '_nvram' 1041 | 'objdump' '_objdump' 1042 | 'od' '_od' 1043 | 'odme' '_object_classes' 1044 | 'odmget' '_object_classes' 1045 | 'odmshow' '_object_classes' 1046 | 'ogg123' '_vorbis' 1047 | 'oggdec' '_vorbis' 1048 | 'oggenc' '_vorbis' 1049 | 'ogginfo' '_vorbis' 1050 | 'oksh' '_sh' 1051 | 'okular' '_okular' 1052 | 'open' '_open' 1053 | 'openstack' '_openstack' 1054 | 'opera' '_webbrowser' 1055 | 'opera-next' '_webbrowser' 1056 | 'opkg' '_opkg' 1057 | 'opusdec' '_opustools' 1058 | 'opusenc' '_opustools' 1059 | 'opusinfo' '_opustools' 1060 | 'osascript' '_osascript' 1061 | 'osc' '_osc' 1062 | 'otool' '_otool' 1063 | 'p4' '_perforce' 1064 | 'p4d' '_perforce' 1065 | 'pack' '_pack' 1066 | 'packf' '_mh' 1067 | 'pandoc' '_pandoc' 1068 | 'parsehdlist' '_urpmi' 1069 | 'passwd' '_users' 1070 | 'paste' '_paste' 1071 | 'patch' '_patch' 1072 | 'pax' '_pax' 1073 | 'pbcopy' '_pbcopy' 1074 | 'pbpaste' '_pbcopy' 1075 | 'pbuilder' '_pbuilder' 1076 | 'pcat' '_pack' 1077 | 'pcp-htop' '_htop' 1078 | 'pcred' '_pids' 1079 | 'pdf2dsc' '_pdf' 1080 | 'pdf2ps' '_pdf' 1081 | 'pdffonts' '_pdf' 1082 | 'pdfimages' '_pdf' 1083 | 'pdfinfo' '_pdf' 1084 | 'pdfjadetex' '_tex' 1085 | 'pdflatex' '_tex' 1086 | 'pdfopt' '_pdf' 1087 | 'pdftex' '_tex' 1088 | 'pdftexi2dvi' '_texinfo' 1089 | 'pdftk' '_pdftk' 1090 | 'pdftopbm' '_pdf' 1091 | 'pdftops' '_pdf' 1092 | 'pdftotext' '_pdf' 1093 | 'pdksh' '_sh' 1094 | 'perf' '_perf' 1095 | 'perl' '_perl' 1096 | 'perldoc' '_perldoc' 1097 | 'pfctl' '_pfctl' 1098 | 'pfexec' '_pfexec' 1099 | 'pfiles' '_pids' 1100 | 'pflags' '_pids' 1101 | 'pg_config' '_postgresql' 1102 | 'pg_ctl' '_postgresql' 1103 | 'pg_dump' '_postgresql' 1104 | 'pg_dumpall' '_postgresql' 1105 | 'pg_isready' '_postgresql' 1106 | 'pg_restore' '_postgresql' 1107 | 'pg_upgrade' '_postgresql' 1108 | 'pgrep' '_pgrep' 1109 | 'php' '_php' 1110 | 'pick' '_mh' 1111 | 'picocom' '_picocom' 1112 | 'pidof' '_pidof' 1113 | 'pidstat' '_sysstat' 1114 | 'pigz' '_gzip' 1115 | 'pine' '_pine' 1116 | 'pinef' '_pine' 1117 | 'pinfo' '_texinfo' 1118 | 'ping' '_ping' 1119 | 'ping6' '_ping' 1120 | 'piuparts' '_piuparts' 1121 | 'pkg' '_pkg5' 1122 | 'pkg-config' '_pkg-config' 1123 | 'pkg_add' '_bsd_pkg' 1124 | 'pkg_create' '_bsd_pkg' 1125 | 'pkg_delete' '_bsd_pkg' 1126 | 'pkg_info' '_bsd_pkg' 1127 | 'pkgadd' '_pkgadd' 1128 | 'pkgin' '_pkgin' 1129 | 'pkginfo' '_pkginfo' 1130 | 'pkgrm' '_pkgrm' 1131 | 'pkgtool' '_pkgtool' 1132 | 'pkill' '_pgrep' 1133 | 'pldd' '_pids' 1134 | 'plutil' '_plutil' 1135 | 'pmake' '_make' 1136 | 'pman' '_perl_modules' 1137 | 'pmap' '_pmap' 1138 | 'pmcat' '_perl_modules' 1139 | 'pmdesc' '_perl_modules' 1140 | 'pmeth' '_perl_modules' 1141 | 'pmexp' '_perl_modules' 1142 | 'pmfunc' '_perl_modules' 1143 | 'pmload' '_perl_modules' 1144 | 'pmls' '_perl_modules' 1145 | 'pmpath' '_perl_modules' 1146 | 'pmvers' '_perl_modules' 1147 | 'podgrep' '_perl_modules' 1148 | 'podpath' '_perl_modules' 1149 | 'podtoc' '_perl_modules' 1150 | 'poff' '_pon' 1151 | 'policytool' '_java' 1152 | 'pon' '_pon' 1153 | 'popd' '_directory_stack' 1154 | 'portaudit' '_portaudit' 1155 | 'portlint' '_portlint' 1156 | 'portmaster' '_portmaster' 1157 | 'portsnap' '_portsnap' 1158 | 'postconf' '_postfix' 1159 | 'postgres' '_postgresql' 1160 | 'postmaster' '_postgresql' 1161 | 'postqueue' '_postfix' 1162 | 'postsuper' '_postfix' 1163 | 'powerd' '_powerd' 1164 | 'pr' '_pr' 1165 | 'prev' '_mh' 1166 | 'print' '_print' 1167 | 'printenv' '_printenv' 1168 | 'printf' '_print' 1169 | 'procstat' '_procstat' 1170 | 'prompt' '_prompt' 1171 | 'prove' '_prove' 1172 | 'prs' '_sccs' 1173 | 'prstat' '_prstat' 1174 | 'prt' '_sccs' 1175 | 'prun' '_pids' 1176 | 'ps' '_ps' 1177 | 'ps2ascii' '_pspdf' 1178 | 'ps2epsi' '_postscript' 1179 | 'ps2pdf' '_postscript' 1180 | 'ps2pdf12' '_postscript' 1181 | 'ps2pdf13' '_postscript' 1182 | 'ps2pdf14' '_postscript' 1183 | 'ps2pdfwr' '_postscript' 1184 | 'ps2ps' '_postscript' 1185 | 'psbook' '_psutils' 1186 | 'pscp' '_pscp' 1187 | 'pscp.exe' '_pscp' 1188 | 'psed' '_sed' 1189 | 'psig' '_pids' 1190 | 'psmerge' '_psutils' 1191 | 'psmulti' '_postscript' 1192 | 'psnup' '_psutils' 1193 | 'psql' '_postgresql' 1194 | 'psresize' '_psutils' 1195 | 'psselect' '_psutils' 1196 | 'pstack' '_pids' 1197 | 'pstoedit' '_pspdf' 1198 | 'pstop' '_pids' 1199 | 'pstops' '_psutils' 1200 | 'pstotgif' '_pspdf' 1201 | 'pswrap' '_postscript' 1202 | 'ptree' '_ptree' 1203 | 'ptx' '_ptx' 1204 | 'pump' '_pump' 1205 | 'pushd' '_cd' 1206 | 'putclip' '_putclip' 1207 | 'putclip.exe' '_putclip' 1208 | 'pv' '_pv' 1209 | 'pwait' '_pids' 1210 | 'pwdx' '_pids' 1211 | 'pwgen' '_pwgen' 1212 | 'pyhtmlizer' '_twisted' 1213 | 'qdbus' '_qdbus' 1214 | 'qiv' '_qiv' 1215 | 'qtplay' '_qtplay' 1216 | 'querybts' '_bug' 1217 | 'quilt' '_quilt' 1218 | 'r' '_fc' 1219 | 'rake' '_rake' 1220 | 'ranlib' '_ranlib' 1221 | 'rar' '_rar' 1222 | 'rc' '_sh' 1223 | 'rcctl' '_rcctl' 1224 | 'rclone' '_rclone' 1225 | 'rcp' '_rlogin' 1226 | 'rcs' '_rcs' 1227 | 'rcsdiff' '_rcs' 1228 | 'rdesktop' '_rdesktop' 1229 | 'read' '_read' 1230 | 'readelf' '_readelf' 1231 | 'readlink' '_readlink' 1232 | 'readonly' '_typeset' 1233 | 'readshortcut' '_readshortcut' 1234 | 'readshortcut.exe' '_readshortcut' 1235 | 'rebootin' '_rebootin' 1236 | 'refile' '_mh' 1237 | 'rehash' '_hash' 1238 | 'reindexdb' '_postgresql' 1239 | 'reload' '_initctl' 1240 | 'removepkg' '_pkgtool' 1241 | 'remsh' '_rlogin' 1242 | 'renice' '_renice' 1243 | 'repl' '_mh' 1244 | 'reportbug' '_bug' 1245 | 'reprepro' '_reprepro' 1246 | 'restart' '_initctl' 1247 | 'retawq' '_webbrowser' 1248 | 'rgrep' '_grep' 1249 | 'rgview' '_vim' 1250 | 'rgvim' '_vim' 1251 | 'ri' '_ri' 1252 | 'rlogin' '_rlogin' 1253 | 'rm' '_rm' 1254 | 'rmadison' '_madison' 1255 | 'rmd160' '_cksum' 1256 | 'rmdel' '_sccs' 1257 | 'rmdir' '_rmdir' 1258 | 'rmf' '_mh' 1259 | 'rmic' '_java' 1260 | 'rmid' '_java' 1261 | 'rmiregistry' '_java' 1262 | 'rmm' '_mh' 1263 | 'rmmod' '_modutils' 1264 | 'route' '_route' 1265 | 'rpm' '_rpm' 1266 | 'rpmbuild' '_rpm' 1267 | 'rpmkeys' '_rpm' 1268 | 'rpmquery' '_rpm' 1269 | 'rpmsign' '_rpm' 1270 | 'rpmspec' '_rpm' 1271 | 'rpmverify' '_rpm' 1272 | 'rrdtool' '_rrdtool' 1273 | 'rsh' '_rlogin' 1274 | 'rsync' '_rsync' 1275 | 'rtin' '_tin' 1276 | 'rubber' '_rubber' 1277 | 'rubber-info' '_rubber' 1278 | 'rubber-pipe' '_rubber' 1279 | 'ruby' '_ruby' 1280 | 'ruby-mri' '_ruby' 1281 | 'run-help' '_run-help' 1282 | 'rup' '_hosts' 1283 | 'rusage' '_precommand' 1284 | 'rview' '_vim' 1285 | 'rvim' '_vim' 1286 | 'rwho' '_hosts' 1287 | 'rxvt' '_urxvt' 1288 | 's2p' '_sed' 1289 | 'sact' '_sccs' 1290 | 'sadf' '_sysstat' 1291 | 'sahara' '_openstack' 1292 | 'sar' '_sysstat' 1293 | 'savecore' '_savecore' 1294 | 'say' '_say' 1295 | 'sbuild' '_sbuild' 1296 | 'sc_usage' '_sc_usage' 1297 | 'scan' '_mh' 1298 | 'sccs' '_sccs' 1299 | 'sccsdiff' '_sccs' 1300 | 'sched' '_sched' 1301 | 'schedtool' '_schedtool' 1302 | 'schroot' '_schroot' 1303 | 'scl' '_scl' 1304 | 'scons' '_scons' 1305 | 'scp' '_ssh' 1306 | 'screen' '_screen' 1307 | 'script' '_script' 1308 | 'scriptreplay' '_script' 1309 | 'scselect' '_scselect' 1310 | 'scutil' '_scutil' 1311 | 'seaf-cli' '_seafile' 1312 | 'sed' '_sed' 1313 | 'senlin' '_openstack' 1314 | 'seq' '_seq' 1315 | 'serialver' '_java' 1316 | 'service' '_service' 1317 | 'set' '_set' 1318 | 'setfacl' '_setfacl' 1319 | 'setfacl.exe' '_setfacl' 1320 | 'setfattr' '_attr' 1321 | 'setopt' '_setopt' 1322 | 'setpriv' '_setpriv' 1323 | 'setsid' '_setsid' 1324 | 'setxkbmap' '_setxkbmap' 1325 | 'sftp' '_ssh' 1326 | 'sh' '_sh' 1327 | 'sha1' '_cksum' 1328 | 'sha1sum' '_md5sum' 1329 | 'sha224sum' '_md5sum' 1330 | 'sha256' '_cksum' 1331 | 'sha256sum' '_md5sum' 1332 | 'sha384' '_cksum' 1333 | 'sha384sum' '_md5sum' 1334 | 'sha512' '_cksum' 1335 | 'sha512sum' '_md5sum' 1336 | 'sha512t256' '_cksum' 1337 | 'shasum' '_shasum' 1338 | 'shift' '_arrays' 1339 | 'show' '_mh' 1340 | 'showchar' '_psutils' 1341 | 'showmount' '_showmount' 1342 | 'shred' '_shred' 1343 | 'shuf' '_shuf' 1344 | 'shutdown' '_shutdown' 1345 | 'signify' '_signify' 1346 | 'sisu' '_sisu' 1347 | 'skein1024' '_cksum' 1348 | 'skein256' '_cksum' 1349 | 'skein512' '_cksum' 1350 | 'skipstone' '_webbrowser' 1351 | 'slabtop' '_slabtop' 1352 | 'slitex' '_tex' 1353 | 'slocate' '_locate' 1354 | 'slogin' '_ssh' 1355 | 'slrn' '_slrn' 1356 | 'smartctl' '_smartmontools' 1357 | 'smbclient' '_samba' 1358 | 'smbcontrol' '_samba' 1359 | 'smbstatus' '_samba' 1360 | 'smit' '_smit' 1361 | 'smitty' '_smit' 1362 | 'snoop' '_snoop' 1363 | 'soa' '_hosts' 1364 | 'socket' '_socket' 1365 | 'sockstat' '_sockstat' 1366 | 'softwareupdate' '_softwareupdate' 1367 | 'sort' '_sort' 1368 | 'sortm' '_mh' 1369 | 'source' '_source' 1370 | 'spamassassin' '_spamassassin' 1371 | 'split' '_split' 1372 | 'splitdiff' '_patchutils' 1373 | 'sqlite' '_sqlite' 1374 | 'sqlite3' '_sqlite' 1375 | 'sqsh' '_sqsh' 1376 | 'sr' '_surfraw' 1377 | 'srptool' '_gnutls' 1378 | 'ss' '_ss' 1379 | 'ssh' '_ssh' 1380 | 'ssh-add' '_ssh' 1381 | 'ssh-agent' '_ssh' 1382 | 'ssh-copy-id' '_ssh' 1383 | 'ssh-keygen' '_ssh' 1384 | 'ssh-keyscan' '_ssh' 1385 | 'sshfs' '_sshfs' 1386 | 'star' '_tar' 1387 | 'start' '_initctl' 1388 | 'stat' '_stat' 1389 | 'status' '_initctl' 1390 | 'stdbuf' '_stdbuf' 1391 | 'stg' '_stgit' 1392 | 'stop' '_initctl' 1393 | 'stow' '_stow' 1394 | 'strace' '_strace' 1395 | 'strace64' '_strace' 1396 | 'strftime' '_strftime' 1397 | 'strings' '_strings' 1398 | 'strip' '_strip' 1399 | 'strongswan' '_ipsec' 1400 | 'stty' '_stty' 1401 | 'su' '_su' 1402 | 'subl' '_sublimetext' 1403 | 'sudo' '_sudo' 1404 | 'sudoedit' '_sudo' 1405 | 'sum' '_cksum' 1406 | 'surfraw' '_surfraw' 1407 | 'sv' '_runit' 1408 | 'svcadm' '_svcadm' 1409 | 'svccfg' '_svccfg' 1410 | 'svcprop' '_svcprop' 1411 | 'svcs' '_svcs' 1412 | 'svn' '_subversion' 1413 | 'svn-buildpackage' '_svn-buildpackage' 1414 | 'svnadmin' '_subversion' 1415 | 'svnadmin-static' '_subversion' 1416 | 'svnlite' '_subversion' 1417 | 'svnliteadmin' '_subversion' 1418 | 'sw_vers' '_sw_vers' 1419 | 'swaks' '_swaks' 1420 | 'swanctl' '_swanctl' 1421 | 'swift' '_swift' 1422 | 'swiftc' '_swift' 1423 | 'sync' '_nothing' 1424 | 'sysclean' '_sysclean' 1425 | 'sysctl' '_sysctl' 1426 | 'sysmerge' '_sysmerge' 1427 | 'syspatch' '_syspatch' 1428 | 'sysrc' '_sysrc' 1429 | 'systat' '_systat' 1430 | 'system_profiler' '_system_profiler' 1431 | 'sysupgrade' '_sysupgrade' 1432 | 'tac' '_tac' 1433 | 'tacker' '_openstack' 1434 | 'tail' '_tail' 1435 | 'talk' '_other_accounts' 1436 | 'tar' '_tar' 1437 | 'tardy' '_tardy' 1438 | 'tcp_open' '_tcpsys' 1439 | 'tcpdump' '_tcpdump' 1440 | 'tcptraceroute' '_tcptraceroute' 1441 | 'tcsh' '_sh' 1442 | 'tda' '_devtodo' 1443 | 'tdd' '_devtodo' 1444 | 'tde' '_devtodo' 1445 | 'tdr' '_devtodo' 1446 | 'tee' '_tee' 1447 | 'telnet' '_telnet' 1448 | 'tex' '_tex' 1449 | 'texi2any' '_texinfo' 1450 | 'texi2dvi' '_texinfo' 1451 | 'texi2pdf' '_texinfo' 1452 | 'texindex' '_texinfo' 1453 | 'tg' '_topgit' 1454 | 'tidy' '_tidy' 1455 | 'tig' '_git' 1456 | 'time' '_precommand' 1457 | 'timeout' '_timeout' 1458 | 'times' '_nothing' 1459 | 'tin' '_tin' 1460 | 'tkconch' '_twisted' 1461 | 'tkinfo' '_texinfo' 1462 | 'tla' '_tla' 1463 | 'tload' '_tload' 1464 | 'tmux' '_tmux' 1465 | 'todo' '_devtodo' 1466 | 'todo.sh' '_todo.sh' 1467 | 'toilet' '_toilet' 1468 | 'top' '_top' 1469 | 'totdconfig' '_totd' 1470 | 'touch' '_touch' 1471 | 'tpb' '_tpb' 1472 | 'tpkg-debarch' '_toolchain-source' 1473 | 'tpkg-install' '_toolchain-source' 1474 | 'tpkg-install-libc' '_toolchain-source' 1475 | 'tpkg-make' '_toolchain-source' 1476 | 'tpkg-update' '_toolchain-source' 1477 | 'tput' '_tput' 1478 | 'tr' '_tr' 1479 | 'tracepath' '_tracepath' 1480 | 'tracepath6' '_tracepath' 1481 | 'traceroute' '_hosts' 1482 | 'transmission-remote' '_transmission' 1483 | 'trap' '_trap' 1484 | 'trash' '_trash' 1485 | 'tree' '_tree' 1486 | 'trial' '_twisted' 1487 | 'trove' '_openstack' 1488 | 'true' '_nothing' 1489 | 'truncate' '_truncate' 1490 | 'truss' '_truss' 1491 | 'tryaffix' '_ispell' 1492 | 'tty' '_tty' 1493 | 'ttyctl' '_ttyctl' 1494 | 'tunctl' '_uml' 1495 | 'tune2fs' '_tune2fs' 1496 | 'tunes2pod' '_gnupod' 1497 | 'tunes2pod.pl' '_gnupod' 1498 | 'twidge' '_twidge' 1499 | 'twist' '_twisted' 1500 | 'twistd' '_twisted' 1501 | 'txt' '_hosts' 1502 | 'type' '_which' 1503 | 'typeset' '_typeset' 1504 | 'ulimit' '_ulimit' 1505 | 'uml_mconsole' '_uml' 1506 | 'uml_moo' '_uml' 1507 | 'uml_switch' '_uml' 1508 | 'umount' '_mount' 1509 | 'unace' '_unace' 1510 | 'unalias' '_aliases' 1511 | 'uname' '_uname' 1512 | 'uncompress' '_compress' 1513 | 'unexpand' '_unexpand' 1514 | 'unfunction' '_functions' 1515 | 'unget' '_sccs' 1516 | 'unhash' '_unhash' 1517 | 'uniq' '_uniq' 1518 | 'unison' '_unison' 1519 | 'units' '_units' 1520 | 'unix2dos' '_dos2unix' 1521 | 'unix2mac' '_dos2unix' 1522 | 'unlimit' '_limits' 1523 | 'unlz4' '_lz4' 1524 | 'unlzma' '_xz' 1525 | 'unpack' '_pack' 1526 | 'unpigz' '_gzip' 1527 | 'unrar' '_rar' 1528 | 'unset' '_vars' 1529 | 'unsetopt' '_setopt' 1530 | 'unshare' '_unshare' 1531 | 'unwrapdiff' '_patchutils' 1532 | 'unxz' '_xz' 1533 | 'unzip' '_zip' 1534 | 'update-alternatives' '_update-alternatives' 1535 | 'update-rc.d' '_update-rc.d' 1536 | 'upgradepkg' '_pkgtool' 1537 | 'uptime' '_uptime' 1538 | 'urpme' '_urpmi' 1539 | 'urpmf' '_urpmi' 1540 | 'urpmi' '_urpmi' 1541 | 'urpmi.addmedia' '_urpmi' 1542 | 'urpmi.removemedia' '_urpmi' 1543 | 'urpmi.update' '_urpmi' 1544 | 'urpmq' '_urpmi' 1545 | 'urxvt' '_urxvt' 1546 | 'urxvt256c' '_urxvt' 1547 | 'urxvt256c-ml' '_urxvt' 1548 | 'urxvt256c-mlc' '_urxvt' 1549 | 'urxvt256cc' '_urxvt' 1550 | 'urxvtc' '_urxvt' 1551 | 'usbconfig' '_usbconfig' 1552 | 'uscan' '_uscan' 1553 | 'useradd' '_user_admin' 1554 | 'userdel' '_users' 1555 | 'usermod' '_user_admin' 1556 | 'vacuumdb' '_postgresql' 1557 | 'val' '_sccs' 1558 | 'valgrind' '_valgrind' 1559 | 'vared' '_vared' 1560 | 'vcs_info_hookadd' '_vcs_info' 1561 | 'vcs_info_hookdel' '_vcs_info' 1562 | 'vi' '_vi' 1563 | 'view' '_vi' 1564 | 'vim' '_vim' 1565 | 'vim-addons' '_vim-addons' 1566 | 'vimdiff' '_vim' 1567 | 'virsh' '_libvirt' 1568 | 'virt-admin' '_libvirt' 1569 | 'virt-host-validate' '_libvirt' 1570 | 'virt-pki-validate' '_libvirt' 1571 | 'virt-xml-validate' '_libvirt' 1572 | 'visudo' '_visudo' 1573 | 'vitrage' '_openstack' 1574 | 'vmctl' '_vmctl' 1575 | 'vmstat' '_vmstat' 1576 | 'vncserver' '_vnc' 1577 | 'vncviewer' '_vnc' 1578 | 'vorbiscomment' '_vorbis' 1579 | 'vpnc' '_vpnc' 1580 | 'vpnc-connect' '_vpnc' 1581 | 'vserver' '_vserver' 1582 | 'w' '_w' 1583 | 'w3m' '_w3m' 1584 | 'wait' '_wait' 1585 | 'wajig' '_wajig' 1586 | 'wanna-build' '_wanna-build' 1587 | 'watch' '_watch' 1588 | 'watcher' '_openstack' 1589 | 'wc' '_wc' 1590 | 'wget' '_wget' 1591 | 'what' '_sccs' 1592 | 'whatis' '_man' 1593 | 'whence' '_which' 1594 | 'where' '_which' 1595 | 'whereis' '_whereis' 1596 | 'which' '_which' 1597 | 'who' '_who' 1598 | 'whoami' '_nothing' 1599 | 'whois' '_whois' 1600 | 'whom' '_mh' 1601 | 'wiggle' '_wiggle' 1602 | 'wipefs' '_wipefs' 1603 | 'wodim' '_cdrecord' 1604 | 'wpa_cli' '_wpa_cli' 1605 | 'write' '_users_on' 1606 | 'www' '_webbrowser' 1607 | 'xargs' '_xargs' 1608 | 'xattr' '_attr' 1609 | 'xauth' '_xauth' 1610 | 'xautolock' '_xautolock' 1611 | 'xclip' '_xclip' 1612 | 'xcode-select' '_xcode-select' 1613 | 'xdpyinfo' '_x_utils' 1614 | 'xdvi' '_xdvi' 1615 | 'xelatex' '_tex' 1616 | 'xetex' '_tex' 1617 | 'xev' '_x_utils' 1618 | 'xfd' '_x_utils' 1619 | 'xfig' '_xfig' 1620 | 'xfontsel' '_x_utils' 1621 | 'xfreerdp' '_rdesktop' 1622 | 'xhost' '_x_utils' 1623 | 'xinput' '_xinput' 1624 | 'xkill' '_x_utils' 1625 | 'xli' '_xloadimage' 1626 | 'xloadimage' '_xloadimage' 1627 | 'xlsatoms' '_x_utils' 1628 | 'xlsclients' '_x_utils' 1629 | 'xml' '_xmlstarlet' 1630 | 'xmllint' '_xmlsoft' 1631 | 'xmlstarlet' '_xmlstarlet' 1632 | 'xmms2' '_xmms2' 1633 | 'xmodmap' '_xmodmap' 1634 | 'xmosaic' '_webbrowser' 1635 | 'xon' '_x_utils' 1636 | 'xournal' '_xournal' 1637 | 'xpdf' '_xpdf' 1638 | 'xping' '_hosts' 1639 | 'xprop' '_x_utils' 1640 | 'xrandr' '_xrandr' 1641 | 'xrdb' '_x_utils' 1642 | 'xscreensaver-command' '_xscreensaver' 1643 | 'xset' '_xset' 1644 | 'xsetbg' '_xloadimage' 1645 | 'xsetroot' '_x_utils' 1646 | 'xsltproc' '_xmlsoft' 1647 | 'xterm' '_xterm' 1648 | 'xtightvncviewer' '_vnc' 1649 | 'xtp' '_imagemagick' 1650 | 'xv' '_xv' 1651 | 'xview' '_xloadimage' 1652 | 'xvnc4viewer' '_vnc' 1653 | 'xvncviewer' '_vnc' 1654 | 'xwd' '_x_utils' 1655 | 'xwininfo' '_x_utils' 1656 | 'xwit' '_xwit' 1657 | 'xwud' '_x_utils' 1658 | 'xxd' '_xxd' 1659 | 'xz' '_xz' 1660 | 'xzcat' '_xz' 1661 | 'yafc' '_yafc' 1662 | 'yash' '_sh' 1663 | 'yast' '_yast' 1664 | 'yast2' '_yast' 1665 | 'ypbind' '_yp' 1666 | 'ypcat' '_yp' 1667 | 'ypmatch' '_yp' 1668 | 'yppasswd' '_yp' 1669 | 'yppoll' '_yp' 1670 | 'yppush' '_yp' 1671 | 'ypserv' '_yp' 1672 | 'ypset' '_yp' 1673 | 'ypwhich' '_yp' 1674 | 'ypxfr' '_yp' 1675 | 'ytalk' '_other_accounts' 1676 | 'yum' '_yum' 1677 | 'yumdb' '_yum' 1678 | 'zargs' '_zargs' 1679 | 'zcalc' '_zcalc' 1680 | 'zcat' '_zcat' 1681 | 'zcompile' '_zcompile' 1682 | 'zcp' '_zmv' 1683 | 'zdb' '_zfs' 1684 | 'zdelattr' '_zattr' 1685 | 'zdump' '_zdump' 1686 | 'zeal' '_zeal' 1687 | 'zed' '_zed' 1688 | 'zegrep' '_grep' 1689 | 'zen' '_webbrowser' 1690 | 'zf_chgrp' '_chown' 1691 | 'zf_chmod' '_chmod' 1692 | 'zf_chown' '_chown' 1693 | 'zf_ln' '_ln' 1694 | 'zf_mkdir' '_mkdir' 1695 | 'zf_mv' '_mv' 1696 | 'zf_rm' '_rm' 1697 | 'zf_rmdir' '_rmdir' 1698 | 'zfgrep' '_grep' 1699 | 'zfs' '_zfs' 1700 | 'zgetattr' '_zattr' 1701 | 'zgrep' '_grep' 1702 | 'zip' '_zip' 1703 | 'zipinfo' '_zip' 1704 | 'zle' '_zle' 1705 | 'zlistattr' '_zattr' 1706 | 'zln' '_zmv' 1707 | 'zlogin' '_zlogin' 1708 | 'zmail' '_mail' 1709 | 'zmodload' '_zmodload' 1710 | 'zmv' '_zmv' 1711 | 'zone' '_hosts' 1712 | 'zoneadm' '_zoneadm' 1713 | 'zparseopts' '_zparseopts' 1714 | 'zpool' '_zfs' 1715 | 'zpty' '_zpty' 1716 | 'zsetattr' '_zattr' 1717 | 'zsh' '_zsh' 1718 | 'zsh-mime-handler' '_zsh-mime-handler' 1719 | 'zsocket' '_zsocket' 1720 | 'zstat' '_stat' 1721 | 'zstyle' '_zstyle' 1722 | 'ztodo' '_ztodo' 1723 | 'zun' '_openstack' 1724 | 'zxpdf' '_xpdf' 1725 | 'zypper' '_zypper' 1726 | ) 1727 | 1728 | _services=( 1729 | '-redirect-,<,bunzip2' 'bunzip2' 1730 | '-redirect-,<,bzip2' 'bzip2' 1731 | '-redirect-,<,compress' 'compress' 1732 | '-redirect-,<,gunzip' 'gunzip' 1733 | '-redirect-,<,gzip' 'gzip' 1734 | '-redirect-,<,uncompress' 'uncompress' 1735 | '-redirect-,<,unxz' 'unxz' 1736 | '-redirect-,<,xz' 'xz' 1737 | '-redirect-,>,bzip2' 'bunzip2' 1738 | '-redirect-,>,compress' 'uncompress' 1739 | '-redirect-,>,gzip' 'gunzip' 1740 | '-redirect-,>,xz' 'unxz' 1741 | 'Mail' 'mail' 1742 | 'bzcat' 'bunzip2' 1743 | 'dch' 'debchange' 1744 | 'gchgrp' 'chgrp' 1745 | 'gchown' 'chown' 1746 | 'gnupod_INIT.pl' 'gnupod_INIT' 1747 | 'gnupod_addsong.pl' 'gnupod_addsong' 1748 | 'gnupod_check.pl' 'gnupod_check' 1749 | 'gnupod_search.pl' 'gnupod_search' 1750 | 'gpg2' 'gpg' 1751 | 'gzcat' 'gunzip' 1752 | 'iceweasel' 'firefox' 1753 | 'lzcat' 'unxz' 1754 | 'lzma' 'xz' 1755 | 'mailx' 'mail' 1756 | 'mktunes.pl' 'mktunes' 1757 | 'nail' 'mail' 1758 | 'ncl' 'nc' 1759 | 'nedit-nc' 'nc' 1760 | 'pcat' 'unpack' 1761 | 'remsh' 'rsh' 1762 | 'slogin' 'ssh' 1763 | 'svnadmin-static' 'svnadmin' 1764 | 'svnlite' 'svn' 1765 | 'svnliteadmin' 'svnadmin' 1766 | 'tunes2pod.pl' 'tunes2pod' 1767 | 'unlzma' 'unxz' 1768 | 'xelatex' 'latex' 1769 | 'xetex' 'tex' 1770 | 'xzcat' 'unxz' 1771 | 'zf_chgrp' 'chgrp' 1772 | 'zf_chown' 'chown' 1773 | ) 1774 | 1775 | _patcomps=( 1776 | '*/(init|rc[0-9S]#).d/*' '_init_d' 1777 | ) 1778 | 1779 | _postpatcomps=( 1780 | '(p[bgpn]m*|*top[bgpn]m)' '_pbm' 1781 | '(ruby|[ei]rb)[0-9.]#' '_ruby' 1782 | '(texi(2*|ndex))' '_texi' 1783 | '(tiff*|*2tiff|pal2rgb)' '_tiff' 1784 | '*/X11(|R<4->)/*' '_x_arguments' 1785 | '-value-,(ftp|http(|s))_proxy,-default-' '_urls' 1786 | '-value-,*PATH,-default-' '_dir_list' 1787 | '-value-,*path,-default-' '_directories' 1788 | '-value-,LC_*,-default-' '_locales' 1789 | '-value-,RUBY(LIB|OPT|PATH),-default-' '_ruby' 1790 | '_*' '_compadd' 1791 | 'c++-*' '_gcc' 1792 | 'g++-*' '_gcc' 1793 | 'gcc-*' '_gcc' 1794 | 'gem[0-9.]#' '_gem' 1795 | 'lua[0-9.-]##' '_lua' 1796 | 'php[0-9.-]' '_php' 1797 | 'pip[0-9.]#' '_pip' 1798 | 'pydoc[0-9.]#' '_pydoc' 1799 | 'python[0-9.]#' '_python' 1800 | 'qemu(|-system-*)' '_qemu' 1801 | 'shasum(|5).*' '_shasum' 1802 | 'yodl(|2*)' '_yodl' 1803 | 'zf*' '_zftp' 1804 | ) 1805 | 1806 | _compautos=( 1807 | '_call_program' '+X' 1808 | ) 1809 | 1810 | zle -C _bash_complete-word .complete-word _bash_completions 1811 | zle -C _bash_list-choices .list-choices _bash_completions 1812 | zle -C _complete_debug .complete-word _complete_debug 1813 | zle -C _complete_help .complete-word _complete_help 1814 | zle -C _complete_tag .complete-word _complete_tag 1815 | zle -C _correct_filename .complete-word _correct_filename 1816 | zle -C _correct_word .complete-word _correct_word 1817 | zle -C _expand_alias .complete-word _expand_alias 1818 | zle -C _expand_word .complete-word _expand_word 1819 | zle -C _history-complete-newer .complete-word _history_complete_word 1820 | zle -C _history-complete-older .complete-word _history_complete_word 1821 | zle -C _list_expansions .list-choices _expand_word 1822 | zle -C _most_recent_file .complete-word _most_recent_file 1823 | zle -C _next_tags .list-choices _next_tags 1824 | zle -C _read_comp .complete-word _read_comp 1825 | bindkey '^X^R' _read_comp 1826 | bindkey '^X?' _complete_debug 1827 | bindkey '^XC' _correct_filename 1828 | bindkey '^Xa' _expand_alias 1829 | bindkey '^Xc' _correct_word 1830 | bindkey '^Xd' _list_expansions 1831 | bindkey '^Xe' _expand_word 1832 | bindkey '^Xh' _complete_help 1833 | bindkey '^Xm' _most_recent_file 1834 | bindkey '^Xn' _next_tags 1835 | bindkey '^Xt' _complete_tag 1836 | bindkey '^X~' _bash_list-choices 1837 | bindkey '^[,' _history-complete-newer 1838 | bindkey '^[/' _history-complete-older 1839 | bindkey '^[~' _bash_complete-word 1840 | 1841 | autoload -Uz _SUSEconfig __arguments _a2ps _a2utils _aap \ 1842 | _abcde _absolute_command_paths _ack _acpi _acpitool \ 1843 | _acroread _adb _add-zle-hook-widget _add-zsh-hook _alias \ 1844 | _aliases _all_labels _all_matches _alsa-utils _alternative \ 1845 | _analyseplugin _ansible _ant _antiword _apachectl \ 1846 | _apm _approximate _apt _apt-file _apt-move \ 1847 | _apt-show-versions _aptitude _arch_archives _arch_namespace _arg_compile \ 1848 | _arguments _arp _arping _arrays _asciidoctor \ 1849 | _asciinema _assign _at _attr _augeas \ 1850 | _auto-apt _autocd _avahi _awk _axi-cache \ 1851 | _base64 _basename _basenc _bash _bash_completions \ 1852 | _baudrates _baz _be_name _beadm _beep \ 1853 | _bibtex _bind_addresses _bindkey _bison _bittorrent \ 1854 | _bogofilter _bpf_filters _bpython _brace_parameter _brctl \ 1855 | _bsd_disks _bsd_pkg _bsdconfig _bsdinstall _btrfs \ 1856 | _bts _bug _builtin _bzip2 _bzr \ 1857 | _cabal _cache_invalid _caffeinate _cal _calendar \ 1858 | _call_function _canonical_paths _capabilities _cat _ccal \ 1859 | _cd _cdbs-edit-patch _cdcd _cdr _cdrdao \ 1860 | _cdrecord _chattr _chcon _chflags _chkconfig \ 1861 | _chmod _choom _chown _chroot _chrt \ 1862 | _chsh _cksum _clay _cmdambivalent _cmdstring \ 1863 | _cmp _code _column _combination _comm \ 1864 | _command _command_names _comp_locale _compadd _compdef \ 1865 | _complete _complete_debug _complete_help _complete_help_generic _complete_tag \ 1866 | _completers _composer _compress _condition _configure \ 1867 | _coreadm _correct _correct_filename _correct_word _cowsay \ 1868 | _cp _cpio _cplay _cpupower _crontab \ 1869 | _cryptsetup _cscope _csplit _cssh _csup \ 1870 | _ctags _ctags_tags _cu _curl _cut \ 1871 | _cvs _cvsup _cygcheck _cygpath _cygrunsrv \ 1872 | _cygserver _cygstart _dak _darcs _date \ 1873 | _date_formats _dates _dbus _dchroot _dchroot-dsa \ 1874 | _dconf _dcop _dcut _dd _deb_architectures \ 1875 | _deb_codenames _deb_files _deb_packages _debbugs_bugnumber _debchange \ 1876 | _debcheckout _debdiff _debfoster _deborphan _debsign \ 1877 | _debsnap _debuild _default _defaults _delimiters \ 1878 | _describe _description _devtodo _df _dhclient \ 1879 | _dhcpinfo _dict _dict_words _diff _diff3 \ 1880 | _diff_options _diffstat _dig _dir_list _directories \ 1881 | _directory_stack _dirs _disable _dispatch _django \ 1882 | _dkms _dladm _dlocate _dmesg _dmidecode \ 1883 | _dnf _dns_types _doas _domains _dos2unix \ 1884 | _dpatch-edit-patch _dpkg _dpkg-buildpackage _dpkg-cross _dpkg-repack \ 1885 | _dpkg_source _dput _drill _dropbox _dscverify \ 1886 | _dsh _dtrace _dtruss _du _dumpadm \ 1887 | _dumper _dupload _dvi _dynamic_directory_name _e2label \ 1888 | _ecasound _echotc _echoti _ed _elfdump \ 1889 | _elinks _email_addresses _emulate _enable _enscript \ 1890 | _entr _env _eog _equal _espeak \ 1891 | _etags _ethtool _evince _exec _expand \ 1892 | _expand_alias _expand_word _extensions _external_pwds _fakeroot \ 1893 | _fbsd_architectures _fbsd_device_types _fc _feh _fetch \ 1894 | _fetchmail _ffmpeg _figlet _file_descriptors _file_flags \ 1895 | _file_modes _file_systems _files _find _find_net_interfaces \ 1896 | _findmnt _finger _fink _first _flac \ 1897 | _flex _floppy _flowadm _fmadm _fmt \ 1898 | _fold _fortune _free _freebsd-update _fs_usage \ 1899 | _fsh _fstat _functions _fuse_arguments _fuse_values \ 1900 | _fuser _fusermount _fw_update _gcc _gcore \ 1901 | _gdb _geany _gem _generic _genisoimage \ 1902 | _getclip _getconf _getent _getfacl _getmail \ 1903 | _getopt _ghostscript _git _git-buildpackage _global \ 1904 | _global_tags _globflags _globqual_delims _globquals _gnome-gv \ 1905 | _gnu_generic _gnupod _gnutls _go _gpasswd \ 1906 | _gpg _gphoto2 _gprof _gqview _gradle \ 1907 | _graphicsmagick _grep _grep-excuses _groff _groups \ 1908 | _growisofs _gsettings _gstat _guard _guilt \ 1909 | _gv _gzip _hash _have_glob_qual _hdiutil \ 1910 | _head _hexdump _history _history_complete_word _history_modifiers \ 1911 | _host _hostname _hosts _htop _hwinfo \ 1912 | _iconv _iconvconfig _id _ifconfig _iftop \ 1913 | _ignored _imagemagick _in_vared _inetadm _init_d \ 1914 | _initctl _install _invoke-rc.d _ionice _iostat \ 1915 | _ip _ipadm _ipfw _ipsec _ipset \ 1916 | _iptables _irssi _ispell _iwconfig _jail \ 1917 | _jails _java _java_class _jexec _jls \ 1918 | _jobs _jobs_bg _jobs_builtin _jobs_fg _joe \ 1919 | _join _jot _jq _kdeconnect _kdump \ 1920 | _kfmclient _kill _killall _kld _knock \ 1921 | _kpartx _ktrace _ktrace_points _kvno _last \ 1922 | _ld_debug _ldap _ldconfig _ldd _less \ 1923 | _lha _libvirt _lighttpd _limit _limits \ 1924 | _links _lintian _list _list_files _lldb \ 1925 | _ln _loadkeys _locale _localedef _locales \ 1926 | _locate _logger _logical_volumes _login_classes _look \ 1927 | _losetup _lp _ls _lsattr _lsblk \ 1928 | _lscfg _lsdev _lslv _lsns _lsof \ 1929 | _lspv _lsusb _lsvg _ltrace _lua \ 1930 | _luarocks _lynx _lz4 _lzop _mac_applications \ 1931 | _mac_files_for_application _madison _mail _mailboxes _main_complete \ 1932 | _make _make-kpkg _man _mat _mat2 \ 1933 | _match _math _math_params _matlab _md5sum \ 1934 | _mdadm _mdfind _mdls _mdutil _members \ 1935 | _mencal _menu _mere _mergechanges _message \ 1936 | _mh _mii-tool _mime_types _mixerctl _mkdir \ 1937 | _mkfifo _mknod _mkshortcut _mktemp _mkzsh \ 1938 | _module _module-assistant _module_math_func _modutils _mondo \ 1939 | _monotone _moosic _mosh _most_recent_file _mount \ 1940 | _mozilla _mpc _mplayer _mt _mtools \ 1941 | _mtr _multi_parts _mupdf _mutt _mv \ 1942 | _my_accounts _myrepos _mysql_utils _mysqldiff _nautilus \ 1943 | _nbsd_architectures _ncftp _nedit _net_interfaces _netcat \ 1944 | _netscape _netstat _networkmanager _networksetup _newsgroups \ 1945 | _next_label _next_tags _nginx _ngrep _nice \ 1946 | _nkf _nl _nm _nmap _normal \ 1947 | _nothing _npm _nsenter _nslookup _numbers \ 1948 | _numfmt _nvram _objdump _object_classes _object_files \ 1949 | _obsd_architectures _od _okular _oldlist _open \ 1950 | _openstack _opkg _options _options_set _options_unset \ 1951 | _opustools _osascript _osc _other_accounts _otool \ 1952 | _pack _pandoc _parameter _parameters _paste \ 1953 | _patch _patchutils _path_commands _path_files _pax \ 1954 | _pbcopy _pbm _pbuilder _pdf _pdftk \ 1955 | _perf _perforce _perl _perl_basepods _perl_modules \ 1956 | _perldoc _pfctl _pfexec _pgids _pgrep \ 1957 | _php _physical_volumes _pick_variant _picocom _pidof \ 1958 | _pids _pine _ping _pip _piuparts \ 1959 | _pkg-config _pkg5 _pkg_instance _pkgadd _pkgin \ 1960 | _pkginfo _pkgrm _pkgtool _plutil _pmap \ 1961 | _pon _portaudit _portlint _portmaster _ports \ 1962 | _portsnap _postfix _postgresql _postscript _powerd \ 1963 | _pr _precommand _prefix _print _printenv \ 1964 | _printers _process_names _procstat _prompt _prove \ 1965 | _prstat _ps _ps1234 _pscp _pspdf \ 1966 | _psutils _ptree _ptx _pump _putclip \ 1967 | _pv _pwgen _pydoc _python _python_modules \ 1968 | _qdbus _qemu _qiv _qtplay _quilt \ 1969 | _rake _ranlib _rar _rcctl _rclone \ 1970 | _rcs _rdesktop _read _read_comp _readelf \ 1971 | _readlink _readshortcut _rebootin _redirect _regex_arguments \ 1972 | _regex_words _remote_files _renice _reprepro _requested \ 1973 | _retrieve_cache _retrieve_mac_apps _ri _rlogin _rm \ 1974 | _rmdir _route _routing_domains _routing_tables _rpm \ 1975 | _rrdtool _rsync _rubber _ruby _run-help \ 1976 | _runit _samba _savecore _say _sbuild \ 1977 | _sc_usage _sccs _sched _schedtool _schroot \ 1978 | _scl _scons _screen _script _scselect \ 1979 | _scutil _seafile _sed _selinux_contexts _selinux_roles \ 1980 | _selinux_types _selinux_users _sep_parts _seq _sequence \ 1981 | _service _services _set _set_command _setfacl \ 1982 | _setopt _setpriv _setsid _setup _setxkbmap \ 1983 | _sh _shasum _showmount _shred _shuf \ 1984 | _shutdown _signals _signify _sisu _slabtop \ 1985 | _slrn _smartmontools _smit _snoop _socket \ 1986 | _sockstat _softwareupdate _sort _source _spamassassin \ 1987 | _split _sqlite _sqsh _ss _ssh \ 1988 | _ssh_hosts _sshfs _stat _stdbuf _stgit \ 1989 | _store_cache _stow _strace _strftime _strings \ 1990 | _strip _stty _su _sub_commands _sublimetext \ 1991 | _subscript _subversion _sudo _suffix_alias_files _surfraw \ 1992 | _svcadm _svccfg _svcprop _svcs _svcs_fmri \ 1993 | _svn-buildpackage _sw_vers _swaks _swanctl _swift \ 1994 | _sys_calls _sysclean _sysctl _sysmerge _syspatch \ 1995 | _sysrc _sysstat _systat _system_profiler _sysupgrade \ 1996 | _tac _tags _tail _tar _tar_archive \ 1997 | _tardy _tcpdump _tcpsys _tcptraceroute _tee \ 1998 | _telnet _terminals _tex _texi _texinfo \ 1999 | _tidy _tiff _tilde _tilde_files _time_zone \ 2000 | _timeout _tin _tla _tload _tmux \ 2001 | _todo.sh _toilet _toolchain-source _top _topgit \ 2002 | _totd _touch _tpb _tput _tr \ 2003 | _tracepath _transmission _trap _trash _tree \ 2004 | _truncate _truss _tty _ttyctl _ttys \ 2005 | _tune2fs _twidge _twisted _typeset _ulimit \ 2006 | _uml _umountable _unace _uname _unexpand \ 2007 | _unhash _uniq _unison _units _unshare \ 2008 | _update-alternatives _update-rc.d _uptime _urls _urpmi \ 2009 | _urxvt _usbconfig _uscan _user_admin _user_at_host \ 2010 | _user_expand _user_math_func _users _users_on _valgrind \ 2011 | _value _values _vared _vars _vcs_info \ 2012 | _vcs_info_hooks _vi _vim _vim-addons _visudo \ 2013 | _vmctl _vmstat _vnc _volume_groups _vorbis \ 2014 | _vpnc _vserver _w _w3m _wait \ 2015 | _wajig _wakeup_capable_devices _wanna-build _wanted _watch \ 2016 | _watch-snoop _wc _webbrowser _wget _whereis \ 2017 | _which _who _whois _widgets _wiggle \ 2018 | _wipefs _wpa_cli _x_arguments _x_borderwidth _x_color \ 2019 | _x_colormapid _x_cursor _x_display _x_extension _x_font \ 2020 | _x_geometry _x_keysym _x_locale _x_modifier _x_name \ 2021 | _x_resource _x_selection_timeout _x_title _x_utils _x_visual \ 2022 | _x_window _xargs _xauth _xautolock _xclip \ 2023 | _xcode-select _xdvi _xfig _xft_fonts _xinput \ 2024 | _xloadimage _xmlsoft _xmlstarlet _xmms2 _xmodmap \ 2025 | _xournal _xpdf _xrandr _xscreensaver _xset \ 2026 | _xt_arguments _xt_session_id _xterm _xv _xwit \ 2027 | _xxd _xz _yafc _yast _yodl \ 2028 | _yp _yum _zargs _zattr _zcalc \ 2029 | _zcalc_line _zcat _zcompile _zdump _zeal \ 2030 | _zed _zfs _zfs_dataset _zfs_pool _zftp \ 2031 | _zip _zle _zlogin _zmodload _zmv \ 2032 | _zoneadm _zones _zparseopts _zpty _zsh \ 2033 | _zsh-mime-handler _zsocket _zstyle _ztodo _zypper 2034 | autoload -Uz +X _call_program 2035 | 2036 | typeset -gUa _comp_assocs 2037 | _comp_assocs=( '' ) 2038 | -------------------------------------------------------------------------------- /zsh/.zprofile: -------------------------------------------------------------------------------- 1 | eval "$(/opt/homebrew/bin/brew shellenv)" 2 | -------------------------------------------------------------------------------- /zsh/.zsh_history: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/casprwang/dotfiles/eaa7e5a1e61ac64f69fc2bbc221bf95c7f5b5bc2/zsh/.zsh_history -------------------------------------------------------------------------------- /zsh/.zshrc: -------------------------------------------------------------------------------- 1 | # cores that can't be deferred 2 | source ~/zsh-defer/zsh-defer.plugin.zsh 3 | source ~/.config/zsh/init.sh 4 | 5 | # defer plugins 6 | zsh-autosuggestions() { 7 | source ~/zsh-autosuggestions/zsh-autosuggestions.zsh 8 | ZSH_AUTOSUGGEST_STRATEGY=completion 9 | } 10 | 11 | zsh-completions() { 12 | fpath=(~/zsh-completions/src $fpath) 13 | } 14 | 15 | deferred() { 16 | zsh-autosuggestions 17 | source $HOME/.zsh-vi-mode/zsh-vi-mode.plugin.zsh 18 | source ~/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 19 | source ~/.config/zsh/alias.sh 20 | source ~/.config/zsh/path.sh 21 | source ~/.config/zsh/functions.sh 22 | source ~/.config/zsh/fzf.sh 23 | zsh-completions 24 | export TERM=xterm-ghostty 25 | } 26 | 27 | zsh-defer deferred 28 | 29 | function gi() { curl -sLw "\n" https://www.toptal.com/developers/gitignore/api/$@; } 30 | -------------------------------------------------------------------------------- /zsh/alias.sh: -------------------------------------------------------------------------------- 1 | alias v=nvim 2 | alias vim=nvim 3 | alias rm=trash 4 | alias git=hub 5 | alias o=e 6 | alias ll="ls -l" 7 | alias ss="source ~/.config/zsh/.zshrc" 8 | alias cdd="cd ~/Downloads/" 9 | alias lg="lazygit" 10 | alias yt="yt-dlp" 11 | # alias z="zi" 12 | # alias l='nvim -c "LazyGit"' 13 | 14 | # alias r='nvim -c "FRecnetFiles"' 15 | # alias f='vim "$(fzf --height 40% --layout reverse --border)"' 16 | 17 | alias fzf="source ~/.config/zsh/fzf.sh && fzf" 18 | alias zi="source ~/.config/zsh/fzf.sh && zi" 19 | alias g='zi' 20 | alias d='zi' 21 | alias ignore="nvim .gitignore" 22 | 23 | alias gd="git diff" 24 | alias pb="pbcopy" 25 | alias n="nvim" 26 | alias ssh="TERM=xterm-256color ssh" 27 | 28 | alias rd="vim ./README.md" 29 | 30 | # alias v='nvim "/Users/songwang/Library/Mobile Documents/iCloud~md~obsidian/Documents/notes/$(date +"%Y-%m-%d").md"' 31 | alias v='nvim' 32 | alias h='xh' 33 | 34 | # alias fzf="(set_fzf_theme > /dev/null 2>&1 &) && fzf" 35 | # alias fzf="command cat <(fre --sorted) <(fd -t d) <(fd -t d . ~) | fzf" 36 | 37 | alias docker-compose="docker compose --compatibility $@" 38 | alias ai='aichat' 39 | alias i='y' 40 | alias va="source .venv/bin/activate" 41 | alias pi="ipython" 42 | alias ..='cd ..' 43 | -------------------------------------------------------------------------------- /zsh/edit.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/casprwang/dotfiles/eaa7e5a1e61ac64f69fc2bbc221bf95c7f5b5bc2/zsh/edit.sh -------------------------------------------------------------------------------- /zsh/fre_fd.sh: -------------------------------------------------------------------------------- 1 | awk '!seen[$0]++' <(fre --sorted | grep "^${PWD}*") <(fd -t f . -a --hidden) 2 | -------------------------------------------------------------------------------- /zsh/functions.sh: -------------------------------------------------------------------------------- 1 | tmp() { 2 | # file_path = ~/tmp/tmp 3 | var=$1 4 | if [[ -z ${var} ]]; then 5 | nvim ~/tmp/tmp 6 | else 7 | nvim ~/tmp/tmp.${var} 8 | fi 9 | } 10 | 11 | function y() { 12 | local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd 13 | yazi "$@" --cwd-file="$tmp" 14 | if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then 15 | builtin cd -- "$cwd" 16 | fi 17 | rm -f -- "$tmp" 18 | } 19 | -------------------------------------------------------------------------------- /zsh/fzf.sh: -------------------------------------------------------------------------------- 1 | export THEME_FILE="/Users/songwang/.local/state/nvim/os_mode" 2 | export FZF_OPTS_FILE="/Users/songwang/.local/state/nvim/fzf_opts" 3 | 4 | fzf_light() { 5 | # local color00='#fbf1c7' 6 | # local color01='#ebdbb2' 7 | # local color02='#d5c4a1' 8 | # local color03='#bdae93' 9 | # local color04='#665c54' 10 | # local color05='#504945' 11 | # local color06='#3c3836' 12 | # local color07='#282828' 13 | # local color08='#9d0006' 14 | # local color09='#af3a03' 15 | # local color0A='#b57614' 16 | # local color0B='#79740e' 17 | # local color0C='#427b58' 18 | # local color0D='#076678' 19 | # local color0E='#8f3f71' 20 | # local color0F='#d65d0e' 21 | # 22 | # echo "--color=bg+:$color01,bg:$color00,spinner:$color0C,hl:$color0D""\ 23 | # --color=fg:$color04,header:$color0D,info:$color0A,pointer:$color0C""\ 24 | # --color=marker:$color0C,fg+:$color06,prompt:$color0A,hl+:$color0D" 25 | # 26 | # export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS""\ 27 | # --color=bg+:$color01,bg:$color00,spinner:$color0C,hl:$color0D""\ 28 | # --color=fg:$color04,header:$color0D,info:$color0A,pointer:$color0C""\ 29 | # --color=marker:$color0C,fg+:$color06,prompt:$color0A,hl+:$color0D" 30 | # 31 | } 32 | 33 | # _gen_fzf_default_opts 34 | # Scheme name: Gruvbox dark, medium 35 | # Scheme system: base16 36 | # Scheme author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) 37 | # Template author: Tinted Theming (https://github.com/tinted-theming) 38 | 39 | fzf_dark() { 40 | # local color00='#282828' 41 | # local color01='#3c3836' 42 | # local color02='#504945' 43 | # local color03='#665c54' 44 | # local color04='#bdae93' 45 | # local color05='#d5c4a1' 46 | # local color06='#ebdbb2' 47 | # local color07='#fbf1c7' 48 | # local color08='#fb4934' 49 | # local color09='#fe8019' 50 | # local color0A='#fabd2f' 51 | # local color0B='#b8bb26' 52 | # local color0C='#8ec07c' 53 | # local color0D='#83a598' 54 | # local color0E='#d3869b' 55 | # local color0F='#d65d0e' 56 | # echo "--color=bg+:$color01,bg:$color00,spinner:$color0C,hl:$color0D""\ 57 | # --color=fg:$color04,header:$color0D,info:$color0A,pointer:$color0C""\ 58 | # --color=marker:$color0C,fg+:$color06,prompt:$color0A,hl+:$color0D" 59 | # 60 | # export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS""\ 61 | # --color=bg+:$color01,bg:$color00,spinner:$color0C,hl:$color0D""\ 62 | # --color=fg:$color04,header:$color0D,info:$color0A,pointer:$color0C""\ 63 | # --color=marker:$color0C,fg+:$color06,prompt:$color0A,hl+:$color0D" 64 | } 65 | 66 | set_fzf_theme() { 67 | theme=$(defaults read -g AppleInterfaceStyle) 68 | if [[ $theme = "Dark" ]]; then 69 | fzf_dark 70 | else 71 | fzf_light 72 | fi 73 | } 74 | 75 | set_fzf_theme >/dev/null 2>&1 76 | 77 | # CTRL-Y to copy the command into clipboard using pbcopy 78 | export FZF_CTRL_R_OPTS=" 79 | --bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort' 80 | --color header:italic 81 | --header 'Press CTRL-Y to copy command into clipboard'" 82 | 83 | export FZF_ALT_C_OPTS=" 84 | --walker-skip .git,node_modules,target 85 | --preview 'tree -C {}'" 86 | 87 | export FZF_CTRL_T_OPTS=" 88 | --walker-skip .git,node_modules,target 89 | --preview 'bat -n --color=always {}' 90 | --bind 'ctrl-/:change-preview-window(down|hidden|)'" 91 | 92 | # export FZF_CTRL_T_COMMAND='command fre --sorted' 93 | # export FZF_CTRL_T_OPTS='--tiebreak=index' 94 | 95 | # export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS' 96 | # --color=fg:#e5e9f0,hl:#81a1c1 97 | # --color=fg+:#e5e9f0,bg+:#2E3440,hl+:#81a1c1 98 | # --color=info:#eacb8a,prompt:#bf6069,pointer:#b48dac 99 | # --color=marker:#a3be8b,spinner:#b48dac,header:#a3be8b 100 | # ' 101 | 102 | # export FZF_DEFAULT_OPTS=" 103 | # --color=bg+:#CBD9E3,border:#2C363C,spinner:#944927,hl:#A8334C,fg:#2C363C,header:#A8334C,info:#88507D,pointer:#944927,marker:#944927,fg+:#2C363C,prompt:#88507D,hl+:#A8334C" 104 | 105 | # alias f='fzf --height 40% --layout reverse --border -m --bind "enter:become(nvim {+})"' 106 | -------------------------------------------------------------------------------- /zsh/init.sh: -------------------------------------------------------------------------------- 1 | # pure 2 | # fpath+=("$(brew --prefix)/share/zsh/site-functions") 3 | # autoload -U promptinit 4 | # promptinit 5 | # 6 | # # optionally define some options 7 | # PURE_CMD_MAX_EXEC_TIME=10 8 | # # change the path color 9 | # zstyle :prompt:pure:path color white 10 | # # change the color for both `prompt:success` and `prompt:error` 11 | # zstyle ':prompt:pure:prompt:*' color cyan 12 | # # turn on git stash status 13 | # zstyle :prompt:pure:git:stash show yes 14 | # 15 | # prompt pure 16 | # end pure 17 | 18 | eval "$(starship init zsh)" 19 | 20 | export TERM=screen-256color 21 | export VSCODE_TSJS=1 22 | 23 | # Neovim 24 | export EDITOR=nvim 25 | 26 | # History 27 | export HISTSIZE=1000000000 28 | export SAVEHIST=$HISTSIZE 29 | HISTFILE=~/.zsh_history 30 | 31 | setopt appendhistory 32 | setopt sharehistory 33 | setopt incappendhistory 34 | setopt hist_ignore_dups 35 | 36 | bindkey "^P" up-line-or-search 37 | bindkey "^N" down-line-or-search 38 | bindkey "^B" backward-word 39 | bindkey "^F" forward-word 40 | bindkey '^A' beginning-of-line 41 | bindkey '^E' end-of-line 42 | bindkey '^W' backward-kill-word 43 | bindkey '^D' delete-char 44 | -------------------------------------------------------------------------------- /zsh/old_files.sh: -------------------------------------------------------------------------------- 1 | awk '!seen[$0]++' <(nvim --headless -c 'oldfiles|q' 2>&1 | tr -d '' | cut -d ' ' -f 2- | grep "^\/Users") 2 | # sed '1d' <(awk '!seen[$0]++' <(nvim --headless -c 'oldfiles|q' 2>&1 | tr -d '' | cut -d ' ' -f 2- | grep "^${PWD}*")) | head -n 3 3 | -------------------------------------------------------------------------------- /zsh/path.sh: -------------------------------------------------------------------------------- 1 | . "/opt/homebrew/etc/profile.d/z.sh" 2 | . "$HOME/.cargo/env" 3 | # eval "$(atuin init zsh --disable-up-arrow)" 4 | eval "$(~/.local/bin/mise activate zsh)" 5 | eval "$(zoxide init zsh)" 6 | 7 | source <(fzf --zsh) 8 | export PATH="$PATH":~/bin 9 | 10 | # Scheme name: Gruvbox light, medium 11 | # Scheme system: base16 12 | # Scheme author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) 13 | # Template author: Tinted Theming (https://github.com/tinted-theming) 14 | export PATH=$HOME/.local/share/mise/installs/erlang/27.2/erts-15.2/bin:$PATH 15 | export PATH=$HOME/.local/share/mise/installs/elixir/1.18.1-otp-27/bin:$PATH 16 | export PATH="/opt/homebrew/opt/libpq/bin:$PATH" 17 | export PATH="/Users/songwang/.bun/bin:$PATH" 18 | # export PATH="/Users/songwang/nvim-macos-arm64/bin:$PATH" 19 | 20 | export PATH="/Users/songwang/.config/herd-lite/bin:$PATH" 21 | export PHP_INI_SCAN_DIR="/Users/songwang/.config/herd-lite/bin:$PHP_INI_SCAN_DIR" 22 | 23 | # export PATH="/Users/songwang/Downloads/Odin/:$PATH" 24 | --------------------------------------------------------------------------------