mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-02-04 13:49:07 +00:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 051e3604ee | |||
| 09d62dd159 | |||
| 8a3763e168 | |||
| c37793f649 | |||
| 7bc7230990 | |||
| 067df4e34b | |||
| 4d28499423 | |||
| b685af82fb | |||
|
|
b8a4b82431 | ||
| 0b03acebd8 | |||
| d172b86cb8 | |||
| f910dfb9ac | |||
| ee95d57ba0 | |||
| f8a317f3c7 | |||
| 3762e10932 | |||
| afda96902b | |||
| 3060b6ad66 | |||
|
|
4f154cf509 | ||
| 863d803483 | |||
| 07bb2b56d1 | |||
| 84a753100e | |||
| c8b01f3fda | |||
| 8e6a110aac | |||
| a8baa1671f | |||
| 2ccdd042f6 | |||
|
|
8cf43ed555 | ||
| e22094e0da |
45
.gitignore
vendored
45
.gitignore
vendored
@@ -1,32 +1,35 @@
|
|||||||
Brewfile.lock.json
|
!.gitkeep
|
||||||
lazy-lock.json
|
|
||||||
config/nvim/lazy-lock.json
|
|
||||||
*.log
|
|
||||||
*-secret
|
*-secret
|
||||||
|
*.bak
|
||||||
|
*.log
|
||||||
|
*.socket
|
||||||
*cache
|
*cache
|
||||||
|
.env
|
||||||
.idea
|
.idea
|
||||||
|
.nfs*
|
||||||
.vscode
|
.vscode
|
||||||
|
Brewfile.lock.json
|
||||||
|
antidote_plugins.zsh
|
||||||
|
config/alacritty/theme-active.toml
|
||||||
config/cheat/cheatsheets/pure-bash-bible/*
|
config/cheat/cheatsheets/pure-bash-bible/*
|
||||||
config/cheat/cheatsheets/tldr/*
|
config/cheat/cheatsheets/tldr/*
|
||||||
config/git/credentials
|
config/git/credentials
|
||||||
config/npm/npmrc
|
|
||||||
config/zsh/.zcompdump
|
|
||||||
config/alacritty/theme-active.toml
|
|
||||||
ssh/local.d/*
|
|
||||||
!ssh/local.d/.gitkeep
|
|
||||||
!.gitkeep
|
|
||||||
.env
|
|
||||||
local/share/fonts/*
|
|
||||||
node_modules
|
|
||||||
.nfs*
|
|
||||||
*.socket
|
|
||||||
iTermServer-*
|
|
||||||
lock
|
|
||||||
config/iterm2/AppSupport
|
|
||||||
config/gnupg/S.*
|
config/gnupg/S.*
|
||||||
config/gnupg/s
|
|
||||||
config/gnupg/private-keys-v1.d
|
config/gnupg/private-keys-v1.d
|
||||||
|
config/gnupg/s
|
||||||
|
config/iterm2/AppSupport
|
||||||
|
config/npm/npmrc
|
||||||
|
config/nvim/lazy-lock.json
|
||||||
config/nvim/spell/*
|
config/nvim/spell/*
|
||||||
!config/nvim/spell/.gitkeep
|
!config/nvim/spell/.gitkeep
|
||||||
antidote_plugins.zsh
|
config/zed/*
|
||||||
*.bak
|
!config/zed/settings.json
|
||||||
|
config/zsh/.zcompdump
|
||||||
|
iTermServer-*
|
||||||
|
lazy-lock.json
|
||||||
|
local/share/fonts/*
|
||||||
|
local/bin/asdf/plugins/*
|
||||||
|
lock
|
||||||
|
node_modules
|
||||||
|
ssh/local.d/*
|
||||||
|
!ssh/local.d/.gitkeep
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ repos:
|
|||||||
rev: v5.0.0
|
rev: v5.0.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: requirements-txt-fixer
|
- id: requirements-txt-fixer
|
||||||
|
- id: detect-aws-credentials
|
||||||
- id: detect-private-key
|
- id: detect-private-key
|
||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
args: [--markdown-linebreak-ext=md]
|
args: [--markdown-linebreak-ext=md]
|
||||||
@@ -25,7 +26,7 @@ repos:
|
|||||||
rev: v0.43.0
|
rev: v0.43.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: markdownlint
|
- id: markdownlint
|
||||||
args: [-c, .markdownlint.yaml, --fix]
|
args: [-c, .markdownlint.json, --fix]
|
||||||
|
|
||||||
- repo: https://github.com/adrienverge/yamllint
|
- repo: https://github.com/adrienverge/yamllint
|
||||||
rev: v1.35.1
|
rev: v1.35.1
|
||||||
@@ -43,12 +44,12 @@ repos:
|
|||||||
- id: shfmt
|
- id: shfmt
|
||||||
|
|
||||||
- repo: https://github.com/rhysd/actionlint
|
- repo: https://github.com/rhysd/actionlint
|
||||||
rev: v1.7.4
|
rev: v1.7.6
|
||||||
hooks:
|
hooks:
|
||||||
- id: actionlint
|
- id: actionlint
|
||||||
|
|
||||||
- repo: https://github.com/renovatebot/pre-commit-hooks
|
- repo: https://github.com/renovatebot/pre-commit-hooks
|
||||||
rev: 39.82.9
|
rev: 39.91.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: renovate-config-validator
|
- id: renovate-config-validator
|
||||||
|
|
||||||
|
|||||||
@@ -24,3 +24,7 @@ disable=SC1091
|
|||||||
# SC2174: When used with -p, -m only applies to the deepest directory.
|
# SC2174: When used with -p, -m only applies to the deepest directory.
|
||||||
# https://github.com/koalaman/shellcheck/wiki/SC2174
|
# https://github.com/koalaman/shellcheck/wiki/SC2174
|
||||||
disable=SC2174
|
disable=SC2174
|
||||||
|
|
||||||
|
# SC2016: Expressions don't expand in single quotes, use double quotes for that.
|
||||||
|
# https://www.shellcheck.net/wiki/SC2016
|
||||||
|
disable=SC2016
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ git submodule add --name tmux/tmux-dark-notify \
|
|||||||
|
|
||||||
# Takes submodules and sets them to ignore all changes
|
# Takes submodules and sets them to ignore all changes
|
||||||
for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }'); do
|
for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $2 }'); do
|
||||||
|
echo "Ignoring submodule changes for submodule.${MODULE}..."
|
||||||
git config "submodule.${MODULE}.ignore" all
|
git config "submodule.${MODULE}.ignore" all
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,10 @@ export SHARED_SCRIPTS_SOURCED=0
|
|||||||
|
|
||||||
source "$DOTFILES/config/shared.sh"
|
source "$DOTFILES/config/shared.sh"
|
||||||
|
|
||||||
|
if [ -n "${GHOSTTY_RESOURCES_DIR}" ]; then
|
||||||
|
builtin source "${GHOSTTY_RESOURCES_DIR}/shell-integration/bash/ghostty.bash"
|
||||||
|
fi
|
||||||
|
|
||||||
# shellcheck source=../config/fzf/fzf.bash
|
# shellcheck source=../config/fzf/fzf.bash
|
||||||
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] &&
|
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] &&
|
||||||
source "${DOTFILES}/config/fzf/fzf.bash"
|
source "${DOTFILES}/config/fzf/fzf.bash"
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ setup_tmux_window_name_plugin()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [[ -n $GHOSTTY_RESOURCES_DIR ]]; then
|
||||||
|
source "$GHOSTTY_RESOURCES_DIR"/shell-integration/zsh/ghostty-integration
|
||||||
|
fi
|
||||||
|
|
||||||
source_fzf_config
|
source_fzf_config
|
||||||
setup_tmux_window_name_plugin
|
setup_tmux_window_name_plugin
|
||||||
x-have antidot && eval "$(antidot init)"
|
x-have antidot && eval "$(antidot init)"
|
||||||
|
|||||||
@@ -39,41 +39,53 @@ automatically-unhide-macos-hidden-apps = true
|
|||||||
# check-further-callbacks = true
|
# check-further-callbacks = true
|
||||||
# run = ['layout floating', 'move-node-to-workspace S'] # The callback itself
|
# run = ['layout floating', 'move-node-to-workspace S'] # The callback itself
|
||||||
|
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-name-regex-substring = 'settings' # All settings
|
||||||
|
run = ['layout floating']
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'org.ferdium.ferdium-app' # Ferdium, has WhatsApp etc.
|
if.app-id = 'org.ferdium.ferdium-app' # Ferdium, has WhatsApp etc.
|
||||||
run = ['layout floating']
|
run = ['layout floating']
|
||||||
|
|
||||||
[[on-window-detected]]
|
|
||||||
if.app-name-regex-substring = 'finder'
|
|
||||||
run = 'layout floating'
|
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.apple.finder' # Finder
|
if.app-id = 'com.apple.finder' # Finder
|
||||||
run = 'layout floating'
|
run = ['layout floating']
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.apple.mail' # Mail
|
if.app-id = 'com.apple.mail' # Mail
|
||||||
run = 'layout floating'
|
run = ['layout floating']
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.DanPristupov.Fork' # Fork
|
if.app-id = 'com.DanPristupov.Fork' # Fork
|
||||||
run = 'layout floating'
|
run = ['layout floating']
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.flexibits.fantastical2.mac' # Fantastical
|
if.app-id = 'com.flexibits.fantastical2.mac' # Fantastical
|
||||||
run = 'layout floating'
|
run = ['layout floating']
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'org.whispersystems.signal-desktop' # Signal
|
if.app-id = 'org.whispersystems.signal-desktop' # Signal
|
||||||
run = 'layout floating'
|
run = ['layout floating']
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.tidal.desktop'
|
if.app-id = 'com.tidal.desktop' # TIDAL
|
||||||
run = ['layout floating', 'move-node-to-workspace 2']
|
run = ['layout floating', 'move-node-to-workspace 2'] # Float and move to workspace 2
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.apple.TV'
|
if.app-id = 'com.apple.TV' # Apple TV app
|
||||||
run = 'layout floating'
|
run = ['layout floating']
|
||||||
|
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-id = 'com.setapp.DesktopClient' # Setapp
|
||||||
|
run = ['layout floating']
|
||||||
|
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-id = 'com.electron.dockerdesktop' # Docker Desktop
|
||||||
|
run = ['layout floating']
|
||||||
|
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-id = 'com.tinyspeck.slackmacgap' # Slack
|
||||||
|
run = ['layout floating']
|
||||||
|
|
||||||
# Possible values: (qwerty|dvorak)
|
# Possible values: (qwerty|dvorak)
|
||||||
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
||||||
@@ -90,7 +102,6 @@ preset = 'qwerty'
|
|||||||
[gaps]
|
[gaps]
|
||||||
inner.horizontal = 5
|
inner.horizontal = 5
|
||||||
inner.vertical = 5
|
inner.vertical = 5
|
||||||
# outer.top = 0
|
|
||||||
outer.top = [{ monitor.'^built-in retina display$' = 0 }, 0]
|
outer.top = [{ monitor.'^built-in retina display$' = 0 }, 0]
|
||||||
outer.right = 0
|
outer.right = 0
|
||||||
outer.bottom = 0
|
outer.bottom = 0
|
||||||
@@ -126,13 +137,9 @@ outer.left = 0
|
|||||||
# end tell'
|
# end tell'
|
||||||
# '''
|
# '''
|
||||||
|
|
||||||
alt-cmd-shift-f = 'fullscreen'
|
# alt-cmd-shift-f = 'fullscreen'
|
||||||
alt-cmd-f = 'layout floating'
|
# alt-shift-f = 'layout floating'
|
||||||
|
# alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'
|
||||||
alt-cmd-left = 'join-with left'
|
|
||||||
alt-cmd-down = 'join-with down'
|
|
||||||
alt-cmd-up = 'join-with up'
|
|
||||||
alt-cmd-right = 'join-with right'
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
|
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
|
||||||
alt-h = 'focus left'
|
alt-h = 'focus left'
|
||||||
@@ -140,48 +147,66 @@ alt-j = 'focus down'
|
|||||||
alt-k = 'focus up'
|
alt-k = 'focus up'
|
||||||
alt-l = 'focus right'
|
alt-l = 'focus right'
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#move
|
|
||||||
alt-shift-h = 'move left'
|
|
||||||
alt-shift-j = 'move down'
|
|
||||||
alt-shift-k = 'move up'
|
|
||||||
alt-shift-l = 'move right'
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
|
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
|
||||||
cmd-shift-1 = 'workspace 1' # Main
|
alt-shift-1 = 'workspace 1' # Main
|
||||||
cmd-shift-2 = 'workspace 2' # Music
|
alt-shift-2 = 'workspace 2' # Media
|
||||||
|
ctrl-shift-1 = 'move-node-to-workspace 1'
|
||||||
|
ctrl-shift-2 = 'move-node-to-workspace 2'
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
|
alt-shift-tab = 'workspace-back-and-forth'
|
||||||
alt-cmd-1 = 'move-node-to-workspace 1 --focus-follows-window'
|
ctrl-shift-tab = 'move-workspace-to-monitor --wrap-around prev'
|
||||||
alt-cmd-2 = 'move-node-to-workspace 2 --focus-follows-window'
|
|
||||||
|
|
||||||
shift-tab = 'workspace-back-and-forth'
|
|
||||||
# alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'
|
|
||||||
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
|
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
||||||
alt-a = 'mode apps'
|
alt-a = 'mode apps'
|
||||||
alt-s = 'mode service'
|
alt-s = 'mode service'
|
||||||
alt-d = 'mode resize'
|
alt-m = 'mode move'
|
||||||
|
|
||||||
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
|
# │ alt-m │
|
||||||
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
[mode.move.binding]
|
||||||
|
esc = ['reload-config', 'mode main']
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
|
||||||
|
1 = ['move-node-to-workspace 1 --focus-follows-window']
|
||||||
|
2 = ['move-node-to-workspace 2 --focus-follows-window']
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move
|
||||||
|
h = 'move left'
|
||||||
|
j = 'move down'
|
||||||
|
k = 'move up'
|
||||||
|
l = 'move right'
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#join-with
|
||||||
|
shift-h = 'join-with left'
|
||||||
|
shift-j = 'join-with down'
|
||||||
|
shift-k = 'join-with up'
|
||||||
|
shift-l = 'join-with right'
|
||||||
|
# https://nikitabobko.github.io/AeroSpace/commands#resize
|
||||||
|
ctrl-h = 'resize smart -70'
|
||||||
|
ctrl-l = 'resize smart +70'
|
||||||
|
shift-left = 'resize smart +70'
|
||||||
|
shift-right = 'resize smart -70'
|
||||||
|
# https://nikitabobko.github.io/AeroSpace/commands#flatten-workspace-tree
|
||||||
|
r = ['flatten-workspace-tree', 'mode main'] # reset layout
|
||||||
|
|
||||||
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
|
# │ alt-a │
|
||||||
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
[mode.apps.binding]
|
[mode.apps.binding]
|
||||||
esc = ['reload-config', 'mode main']
|
esc = ['reload-config', 'mode main']
|
||||||
alt-b = ['exec-and-forget open -a /Applications/Brave Browser.app', 'mode main']
|
b = ['exec-and-forget open -a /Applications/Brave Browser.app', 'mode main'] # Browser
|
||||||
alt-c = ['exec-and-forget open -a /Applications/Ferdium.app', 'mode main']
|
c = ['exec-and-forget open -a /Applications/Ferdium.app', 'mode main'] # Chat
|
||||||
alt-o = ['exec-and-forget open -a /Applications/Obsidian.app', 'mode main']
|
g = ['exec-and-forget open -a /Applications/Ghostty.app', 'mode main'] # Ghostty
|
||||||
alt-s = ['exec-and-forget open -a /Applications/Slack.app', 'mode main']
|
o = ['exec-and-forget open -a /Applications/Obsidian.app', 'mode main'] # Obsidian
|
||||||
alt-t = ['exec-and-forget open -a /Applications/TIDAL.app', 'mode main']
|
s = ['exec-and-forget open -a /Applications/Slack.app', 'mode main'] # Slack
|
||||||
alt-w = ['exec-and-forget open -a /Applications/WezTerm.app', 'mode main']
|
t = ['exec-and-forget open -a /Applications/TIDAL.app', 'mode main'] # Tidal
|
||||||
|
w = ['exec-and-forget open -a /Applications/WezTerm.app', 'mode main'] # WezTerm
|
||||||
|
|
||||||
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
|
# │ alt-s │
|
||||||
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
[mode.service.binding]
|
[mode.service.binding]
|
||||||
esc = ['reload-config', 'mode main']
|
esc = ['reload-config', 'mode main'] # reload config
|
||||||
r = ['flatten-workspace-tree', 'mode main'] # reset layout
|
r = ['flatten-workspace-tree', 'mode main'] # reset layout
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
|
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
|
||||||
f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout
|
f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout
|
||||||
backspace = ['close-all-windows-but-current', 'mode main']
|
backspace = ['close-all-windows-but-current', 'mode main']
|
||||||
|
|
||||||
[mode.resize.binding]
|
|
||||||
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
|
|
||||||
r = ['flatten-workspace-tree', 'mode main'] # reset layout
|
|
||||||
h = 'resize smart -70'
|
|
||||||
l = 'resize smart +70'
|
|
||||||
esc = ['reload-config', 'mode main']
|
|
||||||
|
|||||||
43
config/alias
43
config/alias
@@ -16,12 +16,12 @@ alias ....="cd ../../.."
|
|||||||
alias cdgr='cd "$(git root)"'
|
alias cdgr='cd "$(git root)"'
|
||||||
|
|
||||||
# interesting folders, and shortcuts
|
# interesting folders, and shortcuts
|
||||||
alias .="cd $HOME"
|
alias .='cd $HOME'
|
||||||
alias .b="cd $XDG_BIN_HOME"
|
alias .b='cd $XDG_BIN_HOME'
|
||||||
alias .c="cd $HOME/Code"
|
alias .c='cd $HOME/Code'
|
||||||
alias .d="cd $DOTFILES"
|
alias .d='cd $DOTFILES'
|
||||||
alias .dx="cd $DOTFILES;ks"
|
alias .dx='cd $DOTFILES;nvim'
|
||||||
alias .l="cd $HOME/.local"
|
alias .l='cd $HOME/.local'
|
||||||
|
|
||||||
# Shortcuts for listing
|
# Shortcuts for listing
|
||||||
alias ll="ls -la"
|
alias ll="ls -la"
|
||||||
@@ -31,13 +31,10 @@ alias l="ls -a"
|
|||||||
alias cd..="cd .."
|
alias cd..="cd .."
|
||||||
alias sl="ls"
|
alias sl="ls"
|
||||||
|
|
||||||
# List only directories
|
|
||||||
alias lsd="ls -lF | grep '^d'"
|
|
||||||
|
|
||||||
# IP addresses
|
# IP addresses
|
||||||
alias x-ip="dig +short myip.opendns.com @resolver1.opendns.com"
|
alias x-ip="dig +short myip.opendns.com @resolver1.opendns.com"
|
||||||
alias localip="ipconfig getifaddr en1"
|
alias localip="ipconfig getifaddr en1"
|
||||||
alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //'"
|
alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //' | sort"
|
||||||
|
|
||||||
# Show/hide hidden files in Finder
|
# Show/hide hidden files in Finder
|
||||||
alias show="defaults write com.apple.finder AppleShowAllFiles -bool true; killall Finder"
|
alias show="defaults write com.apple.finder AppleShowAllFiles -bool true; killall Finder"
|
||||||
@@ -57,14 +54,7 @@ alias isodate="date +'%Y-%m-%d'"
|
|||||||
alias x-datetime="date +'%Y-%m-%d %H:%M:%S'"
|
alias x-datetime="date +'%Y-%m-%d %H:%M:%S'"
|
||||||
alias x-timestamp="date +'%s'"
|
alias x-timestamp="date +'%s'"
|
||||||
|
|
||||||
# tmux: automatically attach or create session with name 'main'
|
# nvim aliases
|
||||||
alias tm='command tmux new-session -A -s main'
|
|
||||||
# tmux: attach or create new session
|
|
||||||
alias ta='command tmux attach || command tmux'
|
|
||||||
|
|
||||||
# nvim
|
|
||||||
alias c='nvim'
|
|
||||||
alias ks='nvim'
|
|
||||||
alias vi='nvim'
|
alias vi='nvim'
|
||||||
alias vim='nvim'
|
alias vim='nvim'
|
||||||
|
|
||||||
@@ -79,8 +69,6 @@ alias zapds='find . -name ".DS_Store" -print -delete'
|
|||||||
alias zappyc="find . -type f -name '*.pyc' -ls -delete"
|
alias zappyc="find . -type f -name '*.pyc' -ls -delete"
|
||||||
# Run all zaps
|
# Run all zaps
|
||||||
alias zapall="zapds && zappyc"
|
alias zapall="zapds && zappyc"
|
||||||
# tail with follow flag on
|
|
||||||
alias t='tail -f'
|
|
||||||
# directory usage, return only the total
|
# directory usage, return only the total
|
||||||
alias dn='du -chd1'
|
alias dn='du -chd1'
|
||||||
# Mirror site with wget
|
# Mirror site with wget
|
||||||
@@ -88,6 +76,7 @@ alias mirror_site='wget -m -k -K -E -e robots=off'
|
|||||||
# Mirror stdout to stderr, useful for seeing data going through a pipe
|
# Mirror stdout to stderr, useful for seeing data going through a pipe
|
||||||
alias peek='tee >(cat 1>&2)'
|
alias peek='tee >(cat 1>&2)'
|
||||||
|
|
||||||
|
# Runs Gitlab code quality scanner
|
||||||
alias code_scanner='docker run
|
alias code_scanner='docker run
|
||||||
--env SOURCE_CODE="$PWD"
|
--env SOURCE_CODE="$PWD"
|
||||||
--volume "${PWD}":/code
|
--volume "${PWD}":/code
|
||||||
@@ -95,14 +84,16 @@ alias code_scanner='docker run
|
|||||||
registry.gitlab.com/gitlab-org/ci-cd/codequality:"${CODEQUALITY_VERSION:-latest}"
|
registry.gitlab.com/gitlab-org/ci-cd/codequality:"${CODEQUALITY_VERSION:-latest}"
|
||||||
/code'
|
/code'
|
||||||
|
|
||||||
|
# Runs trivy container image scanner
|
||||||
alias trivy_scan='docker run -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy'
|
alias trivy_scan='docker run -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy'
|
||||||
|
# Opens dotfiles with $EDITOR
|
||||||
alias zedit='$EDITOR ~/.dotfiles'
|
alias zedit='$EDITOR ~/.dotfiles'
|
||||||
|
# Open irssi with my configurations
|
||||||
alias irssi="irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_CONFIG_HOME/irssi"
|
alias irssi='irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_CONFIG_HOME/irssi'
|
||||||
|
# Configures wget to use correct wget-hsts file
|
||||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget-hsts"
|
alias wget='wget --hsts-file=$XDG_DATA_HOME/wget-hsts'
|
||||||
alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion"
|
# Configures svn to use correct config directory
|
||||||
|
alias svn='svn --config-dir $XDG_CONFIG_HOME/subversion'
|
||||||
|
|
||||||
if [[ $(uname) == 'Darwin' ]]; then
|
if [[ $(uname) == 'Darwin' ]]; then
|
||||||
|
|
||||||
|
|||||||
@@ -281,8 +281,8 @@ export LESSHISTFILE="$XDG_STATE_HOME"/less/history
|
|||||||
# export LESS_TERMCAP_md="$ORANGE"
|
# export LESS_TERMCAP_md="$ORANGE"
|
||||||
|
|
||||||
# zsh autoloaded terminfo
|
# zsh autoloaded terminfo
|
||||||
export TERMINFO="${XDG_DATA_HOME}/terminfo"
|
# export TERMINFO="${XDG_DATA_HOME}/terminfo"
|
||||||
export TERMINFO_DIRS="${XDG_DATA_HOME}/terminfo":/usr/share/terminfo
|
# export TERMINFO_DIRS="${XDG_DATA_HOME}/terminfo":/usr/share/terminfo
|
||||||
|
|
||||||
# Don't clear the screen after quitting a manual page
|
# Don't clear the screen after quitting a manual page
|
||||||
export MANPAGER="less -X"
|
export MANPAGER="less -X"
|
||||||
|
|||||||
15
config/ghostty/config
Normal file
15
config/ghostty/config
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# vim: ft=ghostty
|
||||||
|
theme = "light:tokyonight-day,dark:tokyonight-storm"
|
||||||
|
font-family = "JetBrainsMono Nerd Font Mono"
|
||||||
|
|
||||||
|
background-blur-radius = 15
|
||||||
|
background-opacity = 0.95
|
||||||
|
|
||||||
|
clipboard-read = allow
|
||||||
|
clipboard-write = allow
|
||||||
|
cursor-style = bar
|
||||||
|
custom-shader-animation = true
|
||||||
|
gtk-single-instance = true
|
||||||
|
mouse-hide-while-typing = true
|
||||||
|
shell-integration-features = true
|
||||||
|
window-theme = system
|
||||||
6
config/glow/glow.yml
Normal file
6
config/glow/glow.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# mouse support (TUI-mode only)
|
||||||
|
mouse: false
|
||||||
|
# use pager to display markdown
|
||||||
|
pager: true
|
||||||
|
# word-wrap at width
|
||||||
|
width: 80
|
||||||
@@ -14,6 +14,7 @@ tap "k8sgpt-ai/k8sgpt"
|
|||||||
tap "keith/formulae"
|
tap "keith/formulae"
|
||||||
tap "mongodb/brew"
|
tap "mongodb/brew"
|
||||||
tap "nikitabobko/tap"
|
tap "nikitabobko/tap"
|
||||||
|
tap "pantheon-systems/external"
|
||||||
tap "reviewdog/tap"
|
tap "reviewdog/tap"
|
||||||
tap "shivammathur/extensions"
|
tap "shivammathur/extensions"
|
||||||
tap "shivammathur/php"
|
tap "shivammathur/php"
|
||||||
@@ -28,6 +29,8 @@ brew "age"
|
|||||||
brew "ca-certificates"
|
brew "ca-certificates"
|
||||||
# Mozilla CA bundle for Python
|
# Mozilla CA bundle for Python
|
||||||
brew "certifi"
|
brew "certifi"
|
||||||
|
# Cryptography and SSL/TLS Toolkit
|
||||||
|
brew "openssl@3"
|
||||||
# Cryptographic recipes and primitives for Python
|
# Cryptographic recipes and primitives for Python
|
||||||
brew "cryptography"
|
brew "cryptography"
|
||||||
# YAML Parser
|
# YAML Parser
|
||||||
@@ -46,8 +49,6 @@ brew "highway"
|
|||||||
brew "imath"
|
brew "imath"
|
||||||
# JPEG image codec that aids compression and decompression
|
# JPEG image codec that aids compression and decompression
|
||||||
brew "jpeg-turbo"
|
brew "jpeg-turbo"
|
||||||
# Library for manipulating PNG images
|
|
||||||
brew "libpng"
|
|
||||||
# Zstandard is a real-time compression algorithm
|
# Zstandard is a real-time compression algorithm
|
||||||
brew "zstd"
|
brew "zstd"
|
||||||
# New file format for still image compression
|
# New file format for still image compression
|
||||||
@@ -148,10 +149,10 @@ brew "unbound"
|
|||||||
brew "gnutls"
|
brew "gnutls"
|
||||||
# GNU Pretty Good Privacy (PGP) package
|
# GNU Pretty Good Privacy (PGP) package
|
||||||
brew "gnupg"
|
brew "gnupg"
|
||||||
|
# Open source programming language to build simple/reliable/efficient software
|
||||||
|
brew "go"
|
||||||
# Library access to GnuPG
|
# Library access to GnuPG
|
||||||
brew "gpgme"
|
brew "gpgme"
|
||||||
# Open source suite of directory software
|
|
||||||
brew "openldap"
|
|
||||||
# Manage your GnuPG keys with ease!
|
# Manage your GnuPG keys with ease!
|
||||||
brew "gpg-tui"
|
brew "gpg-tui"
|
||||||
# Image manipulation
|
# Image manipulation
|
||||||
@@ -198,8 +199,6 @@ brew "libressl"
|
|||||||
brew "libuv"
|
brew "libuv"
|
||||||
# GNOME XML library
|
# GNOME XML library
|
||||||
brew "libxml2"
|
brew "libxml2"
|
||||||
# C library for reading, creating, and modifying zip archives
|
|
||||||
brew "libzip"
|
|
||||||
# Package manager for the Lua programming language
|
# Package manager for the Lua programming language
|
||||||
brew "luarocks"
|
brew "luarocks"
|
||||||
# LZMA-based compression program similar to gzip or bzip2
|
# LZMA-based compression program similar to gzip or bzip2
|
||||||
@@ -216,14 +215,18 @@ brew "nginx"
|
|||||||
brew "nmap"
|
brew "nmap"
|
||||||
# Libraries for security-enabled client and server applications
|
# Libraries for security-enabled client and server applications
|
||||||
brew "nss"
|
brew "nss"
|
||||||
|
# Open source suite of directory software
|
||||||
|
brew "openldap"
|
||||||
# Cryptography and SSL/TLS Toolkit
|
# Cryptography and SSL/TLS Toolkit
|
||||||
brew "openssl@1.1"
|
brew "openssl@1.1"
|
||||||
# ISO-C API and CLI for generating UUIDs
|
# ISO-C API and CLI for generating UUIDs
|
||||||
brew "ossp-uuid"
|
brew "ossp-uuid"
|
||||||
# General-purpose scripting language
|
# General-purpose scripting language
|
||||||
|
brew "php"
|
||||||
|
# General-purpose scripting language
|
||||||
brew "php@8.2"
|
brew "php@8.2"
|
||||||
# General-purpose scripting language
|
# General-purpose scripting language
|
||||||
brew "php@8.3", link: true
|
brew "php@8.3"
|
||||||
# Python version management
|
# Python version management
|
||||||
brew "pyenv"
|
brew "pyenv"
|
||||||
# Migrate pip packages from one Python version to another
|
# Migrate pip packages from one Python version to another
|
||||||
@@ -272,8 +275,12 @@ brew "cormacrelf/tap/dark-notify"
|
|||||||
brew "doron-cohen/tap/antidot"
|
brew "doron-cohen/tap/antidot"
|
||||||
# lets you quickly switch between multiple git user profiles
|
# lets you quickly switch between multiple git user profiles
|
||||||
brew "gesquive/tap/git-user"
|
brew "gesquive/tap/git-user"
|
||||||
|
# Terminus is Pantheon's Command-line Interface (CLI)
|
||||||
|
brew "pantheon-systems/external/terminus"
|
||||||
# Automated code review tool integrated with any code analysis tools regardless of programming language.
|
# Automated code review tool integrated with any code analysis tools regardless of programming language.
|
||||||
brew "reviewdog/tap/reviewdog"
|
brew "reviewdog/tap/reviewdog"
|
||||||
|
# Igbinary PHP extension
|
||||||
|
brew "shivammathur/extensions/igbinary@8.3"
|
||||||
# Imagick PHP extension
|
# Imagick PHP extension
|
||||||
brew "shivammathur/extensions/imagick@8.3"
|
brew "shivammathur/extensions/imagick@8.3"
|
||||||
# Mcrypt PHP extension
|
# Mcrypt PHP extension
|
||||||
@@ -289,9 +296,11 @@ brew "shivammathur/extensions/uuid@8.3"
|
|||||||
# Yaml PHP extension
|
# Yaml PHP extension
|
||||||
brew "shivammathur/extensions/yaml@8.3"
|
brew "shivammathur/extensions/yaml@8.3"
|
||||||
# General-purpose scripting language
|
# General-purpose scripting language
|
||||||
brew "shivammathur/php/php", link: false
|
|
||||||
# General-purpose scripting language
|
|
||||||
brew "shivammathur/php/php-debug"
|
brew "shivammathur/php/php-debug"
|
||||||
|
# General-purpose scripting language
|
||||||
|
brew "shivammathur/php/php@7.4"
|
||||||
|
# General-purpose scripting language
|
||||||
|
brew "shivammathur/php/php@8.0", link: true
|
||||||
# Find & fix known vulnerabilities in open-source dependencies
|
# Find & fix known vulnerabilities in open-source dependencies
|
||||||
brew "snyk/tap/snyk"
|
brew "snyk/tap/snyk"
|
||||||
# Command-line interface for 1Password
|
# Command-line interface for 1Password
|
||||||
@@ -308,10 +317,7 @@ cask "dbngin"
|
|||||||
cask "docker"
|
cask "docker"
|
||||||
cask "font-jetbrains-mono"
|
cask "font-jetbrains-mono"
|
||||||
cask "font-jetbrains-mono-nerd-font"
|
cask "font-jetbrains-mono-nerd-font"
|
||||||
cask "font-lato"
|
|
||||||
cask "font-open-sans"
|
cask "font-open-sans"
|
||||||
cask "font-roboto"
|
|
||||||
cask "font-source-code-pro-for-powerline"
|
|
||||||
# GIT client
|
# GIT client
|
||||||
cask "fork"
|
cask "fork"
|
||||||
# HTTP and GraphQL Client
|
# HTTP and GraphQL Client
|
||||||
|
|||||||
@@ -52,9 +52,15 @@ require('lazy').setup(
|
|||||||
-- No need to notify about changes
|
-- No need to notify about changes
|
||||||
notify = false,
|
notify = false,
|
||||||
},
|
},
|
||||||
|
dev = {
|
||||||
|
path = '~/Code/nvim', -- Load wip plugins from this path
|
||||||
|
},
|
||||||
install = {
|
install = {
|
||||||
colorscheme = { vim.g.colors_theme },
|
colorscheme = { vim.g.colors_theme },
|
||||||
},
|
},
|
||||||
|
profiling = {
|
||||||
|
loader = true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,18 @@ K.nl('o', function() require('snacks').gitbrowse() end, 'Open repo in browser')
|
|||||||
K.n('<C-s>', ':w!<cr>', { desc = 'Save', noremap = true })
|
K.n('<C-s>', ':w!<cr>', { desc = 'Save', noremap = true })
|
||||||
K.n('<esc><esc>', ':nohlsearch<cr>', { desc = 'Clear Search Highlighting' })
|
K.n('<esc><esc>', ':nohlsearch<cr>', { desc = 'Clear Search Highlighting' })
|
||||||
|
|
||||||
|
-- ── ToggleTerm ──────────────────────────────────────────────────────
|
||||||
|
K.d('<F1>', 'n', ':FloatermToggle<CR>', 'Toggle Floaterm')
|
||||||
|
K.d('<F1>', 'i', '<Esc>:FloatermToggle<CR>', 'Toggle Floaterm')
|
||||||
|
K.d('<F1>', 't', '<C-\\><C-n>:FloatermToggle<CR>', 'Toggle Floaterm')
|
||||||
|
|
||||||
|
-- ── Test operations ─────────────────────────────────────────────────
|
||||||
|
K.nl('an', ':silent TestNearest<CR>', 'Test Nearest')
|
||||||
|
K.nl('af', ':silent TestFile<CR>', 'Test File')
|
||||||
|
K.nl('as', ':silent TestSuite<CR>', 'Test Suite')
|
||||||
|
K.nl('al', ':silent TestLast<CR>', 'Test Last')
|
||||||
|
K.nl('av', ':silent TestVisit<CR>', 'Test Visit')
|
||||||
|
|
||||||
-- ── Buffer operations ───────────────────────────────────────────────
|
-- ── Buffer operations ───────────────────────────────────────────────
|
||||||
-- Mappings for buffer management operations like switching, deleting, etc.
|
-- Mappings for buffer management operations like switching, deleting, etc.
|
||||||
-- Convention: All mappings start with 'b' followed by the operation
|
-- Convention: All mappings start with 'b' followed by the operation
|
||||||
@@ -90,7 +102,7 @@ K.nl('cbt', '<Cmd>CBllline<CR>', 'CB: Titled Line')
|
|||||||
-- Mappings for Telescope operations like finding files, buffers, etc.
|
-- Mappings for Telescope operations like finding files, buffers, etc.
|
||||||
-- Convention: All mappings start with 's' followed by the operation
|
-- Convention: All mappings start with 's' followed by the operation
|
||||||
-- unless it's a generic operation like searching or finding buffers
|
-- unless it's a generic operation like searching or finding buffers
|
||||||
K.nl('f', ':Telescope find_files<cr>', 'Find Files')
|
K.nl('f', ':Telescope fd --hidden=true<cr>', 'Find Files')
|
||||||
K.nl(',', ':Telescope buffers<cr>', 'Find existing buffers')
|
K.nl(',', ':Telescope buffers<cr>', 'Find existing buffers')
|
||||||
K.nl(
|
K.nl(
|
||||||
'/',
|
'/',
|
||||||
@@ -105,6 +117,11 @@ K.nl(
|
|||||||
'Fuzzily search in current buffer'
|
'Fuzzily search in current buffer'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
K.nl('pm', ':PhpactorContextMenu<cr>', 'PHPactor: Context Menu')
|
||||||
|
K.nl('pn', ':PhpactorClassNew<cr>', 'PHPactor: Class New')
|
||||||
|
K.nl('ps', ':PhpactorClassSearch<cr>', 'PHPactor: Class Search')
|
||||||
|
K.nl('pt', ':PhpactorTransform<cr>', 'PHPactor: Transform')
|
||||||
|
|
||||||
K.nl('sc', ':Telescope commands<cr>', 'Commands')
|
K.nl('sc', ':Telescope commands<cr>', 'Commands')
|
||||||
K.nl('sd', ':Telescope diagnostics<cr>', 'Search Diagnostics')
|
K.nl('sd', ':Telescope diagnostics<cr>', 'Search Diagnostics')
|
||||||
K.nl('sg', ':Telescope live_grep<cr>', 'Search by Grep')
|
K.nl('sg', ':Telescope live_grep<cr>', 'Search by Grep')
|
||||||
@@ -119,7 +136,6 @@ K.nl(
|
|||||||
)
|
)
|
||||||
K.nl('sq', ':Telescope quickfix<cr>', 'Quickfix')
|
K.nl('sq', ':Telescope quickfix<cr>', 'Quickfix')
|
||||||
K.nl('ss', ':Telescope treesitter<cr>', 'Treesitter')
|
K.nl('ss', ':Telescope treesitter<cr>', 'Treesitter')
|
||||||
K.nl('st', ':TodoTelescope<cr>', 'Search Todos')
|
|
||||||
K.nl('sw', ':Telescope grep_string<cr>', 'Grep String')
|
K.nl('sw', ':Telescope grep_string<cr>', 'Grep String')
|
||||||
K.nl('sx', ':Telescope import<cr>', 'Telescope: Import')
|
K.nl('sx', ':Telescope import<cr>', 'Telescope: Import')
|
||||||
|
|
||||||
|
|||||||
@@ -24,13 +24,15 @@ g.loaded_java_provider = 0 -- Disable java provider
|
|||||||
-- vim.options
|
-- vim.options
|
||||||
-- Most of the good defaults are provided by `mini.basics`
|
-- Most of the good defaults are provided by `mini.basics`
|
||||||
-- See: lua/plugins/mini.lua
|
-- See: lua/plugins/mini.lua
|
||||||
|
o.confirm = true -- Confirm before closing unsaved buffers
|
||||||
o.ignorecase = true -- Ignore case in search patterns
|
o.ignorecase = true -- Ignore case in search patterns
|
||||||
o.inccommand = 'split' -- Preview substitutions live, as you type!
|
o.inccommand = 'split' -- Preview substitutions live, as you type!
|
||||||
o.number = true -- Show line numbers
|
o.number = true -- Show line numbers
|
||||||
o.numberwidth = 3 -- Set the width of the number column
|
o.numberwidth = 3 -- Set the width of the number column
|
||||||
o.relativenumber = true -- Show relative line numbers
|
o.relativenumber = true -- Show relative line numbers
|
||||||
o.scrolloff = 15 -- Show context around cursor
|
o.scrolloff = 8 -- Show context around cursor
|
||||||
o.signcolumn = 'yes:3' -- Keep signcolumn on by default
|
o.sidescrolloff = 8 -- Show context around cursor
|
||||||
|
o.signcolumn = 'yes' -- Keep signcolumn on by default
|
||||||
o.spell = true -- Enable spell checking
|
o.spell = true -- Enable spell checking
|
||||||
o.spelllang = 'en_us' -- Set the spell checking language
|
o.spelllang = 'en_us' -- Set the spell checking language
|
||||||
o.splitbelow = true -- split to the bottom
|
o.splitbelow = true -- split to the bottom
|
||||||
@@ -39,7 +41,9 @@ o.termguicolors = true -- Enable GUI colors
|
|||||||
o.timeoutlen = 250 -- Decrease mapped sequence wait time
|
o.timeoutlen = 250 -- Decrease mapped sequence wait time
|
||||||
o.updatetime = 250 -- 250 ms = 2,5 seconds
|
o.updatetime = 250 -- 250 ms = 2,5 seconds
|
||||||
o.sessionoptions =
|
o.sessionoptions =
|
||||||
'blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions'
|
'buffers,curdir,folds,tabpages,winsize,winpos,terminal,localoptions'
|
||||||
|
|
||||||
|
o.wildmode = 'longest:full,full' -- Command-line completion mode
|
||||||
|
|
||||||
-- Enable the colorcolumn
|
-- Enable the colorcolumn
|
||||||
vim.api.nvim_set_option_value('colorcolumn', '+1', { scope = 'global' })
|
vim.api.nvim_set_option_value('colorcolumn', '+1', { scope = 'global' })
|
||||||
|
|||||||
@@ -8,6 +8,47 @@ return {
|
|||||||
opts = { enabled = true, snippet_engine = 'luasnip' },
|
opts = { enabled = true, snippet_engine = 'luasnip' },
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- Terminal manager for (neo)vim
|
||||||
|
-- https://github.com/voldikss/vim-floaterm
|
||||||
|
{
|
||||||
|
'voldikss/vim-floaterm',
|
||||||
|
cmd = { 'FloatermToggle' },
|
||||||
|
init = function()
|
||||||
|
vim.g.floaterm_width = 0.8
|
||||||
|
vim.g.floaterm_height = 0.8
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Run your tests at the speed of thought
|
||||||
|
-- https://github.com/vim-test/vim-test
|
||||||
|
{
|
||||||
|
'vim-test/vim-test',
|
||||||
|
dependencies = { 'voldikss/vim-floaterm' },
|
||||||
|
config = function()
|
||||||
|
vim.cmd [[
|
||||||
|
function! PhpUnitTransform(cmd) abort
|
||||||
|
return join(map(split(a:cmd), 'v:val == "--colors" ? "--colors=always" : v:val'))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let g:test#custom_transformations = {'phpunit': function('PhpUnitTransform')}
|
||||||
|
let g:test#transformation = 'phpunit'
|
||||||
|
|
||||||
|
" let test#php#phpunit#options = '--colors=always'
|
||||||
|
let test#php#pest#options = '-v'
|
||||||
|
let test#javascript#jest#options = '--color'
|
||||||
|
|
||||||
|
function! FloatermStrategy(cmd)
|
||||||
|
execute 'silent FloatermSend q'
|
||||||
|
execute 'silent FloatermKill'
|
||||||
|
execute 'FloatermNew! '.a:cmd.' | less -X'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let g:test#custom_strategies = {'floaterm': function('FloatermStrategy')}
|
||||||
|
let g:test#strategy = 'floaterm'
|
||||||
|
]]
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Cloak allows you to overlay *'s over defined patterns in defined files.
|
-- Cloak allows you to overlay *'s over defined patterns in defined files.
|
||||||
-- https://github.com/laytan/cloak.nvim
|
-- https://github.com/laytan/cloak.nvim
|
||||||
{
|
{
|
||||||
@@ -36,6 +77,82 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- projectionist.vim: Granular project configuration
|
||||||
|
-- https://github.com/tpope/vim-projectionist
|
||||||
|
{
|
||||||
|
'tpope/vim-projectionist',
|
||||||
|
dependencies = 'tpope/vim-dispatch',
|
||||||
|
config = function()
|
||||||
|
vim.g.projectionist_heuristics = {
|
||||||
|
artisan = {
|
||||||
|
['*'] = {
|
||||||
|
start = 'php artisan serve',
|
||||||
|
console = 'php artisan tinker',
|
||||||
|
},
|
||||||
|
['app/*.php'] = {
|
||||||
|
type = 'source',
|
||||||
|
alternate = {
|
||||||
|
'tests/Unit/{}Test.php',
|
||||||
|
'tests/Feature/{}Test.php',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
['tests/Feature/*Test.php'] = {
|
||||||
|
type = 'test',
|
||||||
|
alternate = 'app/{}.php',
|
||||||
|
},
|
||||||
|
['tests/Unit/*Test.php'] = {
|
||||||
|
type = 'test',
|
||||||
|
alternate = 'app/{}.php',
|
||||||
|
},
|
||||||
|
['app/Models/*.php'] = {
|
||||||
|
type = 'model',
|
||||||
|
},
|
||||||
|
['app/Http/Controllers/*.php'] = {
|
||||||
|
type = 'controller',
|
||||||
|
},
|
||||||
|
['routes/*.php'] = {
|
||||||
|
type = 'route',
|
||||||
|
},
|
||||||
|
['database/migrations/*.php'] = {
|
||||||
|
type = 'migration',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
['src/&composer.json'] = {
|
||||||
|
['src/*.php'] = {
|
||||||
|
type = 'source',
|
||||||
|
alternate = {
|
||||||
|
'tests/{}Test.php',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
['tests/*Test.php'] = {
|
||||||
|
type = 'test',
|
||||||
|
alternate = 'src/{}.php',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
['app/&composer.json'] = {
|
||||||
|
['app/*.php'] = {
|
||||||
|
type = 'source',
|
||||||
|
alternate = {
|
||||||
|
'tests/{}Test.php',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
['tests/*Test.php'] = {
|
||||||
|
type = 'test',
|
||||||
|
alternate = 'app/{}.php',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- A vim text object for XML/HTML attributes.
|
||||||
|
-- https://github.com/whatyouhide/vim-textobj-xmlattr
|
||||||
|
{
|
||||||
|
'whatyouhide/vim-textobj-xmlattr',
|
||||||
|
dependencies = { 'kana/vim-textobj-user' },
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
|
||||||
-- Describe the regexp under the cursor
|
-- Describe the regexp under the cursor
|
||||||
-- https://github.com/bennypowers/nvim-regexplainer
|
-- https://github.com/bennypowers/nvim-regexplainer
|
||||||
{
|
{
|
||||||
@@ -84,4 +201,12 @@ return {
|
|||||||
ft = { 'go', 'gomod' },
|
ft = { 'go', 'gomod' },
|
||||||
build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries
|
build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- Mainly a PHP Language Server with more features than you can shake a stick at
|
||||||
|
-- https://github.com/phpactor/phpactor
|
||||||
|
{
|
||||||
|
'phpactor/phpactor',
|
||||||
|
build = 'composer install --no-dev --optimize-autoloader',
|
||||||
|
ft = 'php',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,15 @@ local lsp_servers = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
html = {},
|
html = {},
|
||||||
intelephense = {},
|
intelephense = {
|
||||||
|
commands = {
|
||||||
|
IntelephenseIndex = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.execute_command { command = 'intelephense.index.workspace' }
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
jsonls = {},
|
jsonls = {},
|
||||||
lua_ls = {
|
lua_ls = {
|
||||||
settings = {
|
settings = {
|
||||||
@@ -196,12 +204,16 @@ return {
|
|||||||
'goimports',
|
'goimports',
|
||||||
'gotests',
|
'gotests',
|
||||||
'phpcbf',
|
'phpcbf',
|
||||||
|
'phpmd',
|
||||||
|
'phpstan',
|
||||||
'pint',
|
'pint',
|
||||||
'prettierd',
|
'prettierd',
|
||||||
|
'semgrep',
|
||||||
'shellcheck',
|
'shellcheck',
|
||||||
'shfmt',
|
'shfmt',
|
||||||
'staticcheck',
|
'staticcheck',
|
||||||
'stylua',
|
'stylua',
|
||||||
|
'trivy',
|
||||||
'vint',
|
'vint',
|
||||||
'yamlfmt',
|
'yamlfmt',
|
||||||
},
|
},
|
||||||
@@ -232,12 +244,12 @@ return {
|
|||||||
config = function(_, opts)
|
config = function(_, opts)
|
||||||
require('lazydev').setup()
|
require('lazydev').setup()
|
||||||
require('lsp-setup').setup(opts)
|
require('lsp-setup').setup(opts)
|
||||||
|
local cmp = require 'blink.cmp'
|
||||||
local lspconfig = require 'lspconfig'
|
local lspconfig = require 'lspconfig'
|
||||||
for server, config in pairs(opts.servers) do
|
for server, config in pairs(opts.servers) do
|
||||||
-- passing config.capabilities to blink.cmp merges with the capabilities in your
|
-- passing config.capabilities to blink.cmp merges with the capabilities in your
|
||||||
-- `opts[server].capabilities, if you've defined it
|
-- `opts[server].capabilities, if you've defined it
|
||||||
config.capabilities =
|
config.capabilities = cmp.get_lsp_capabilities(config.capabilities)
|
||||||
require('blink.cmp').get_lsp_capabilities(config.capabilities)
|
|
||||||
lspconfig[server].setup(config)
|
lspconfig[server].setup(config)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -284,6 +296,34 @@ return {
|
|||||||
validate = { enable = true },
|
validate = { enable = true },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Diagnostic configuration
|
||||||
|
vim.diagnostic.config {
|
||||||
|
virtual_text = false,
|
||||||
|
float = {
|
||||||
|
source = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Sign configuration
|
||||||
|
vim.fn.sign_define(
|
||||||
|
'DiagnosticSignError',
|
||||||
|
{ text = '', texthl = 'DiagnosticSignError' }
|
||||||
|
)
|
||||||
|
vim.fn.sign_define(
|
||||||
|
'DiagnosticSignWarn',
|
||||||
|
{ text = '', texthl = 'DiagnosticSignWarn' }
|
||||||
|
)
|
||||||
|
vim.fn.sign_define(
|
||||||
|
'DiagnosticSignInfo',
|
||||||
|
{ text = '', texthl = 'DiagnosticSignInfo' }
|
||||||
|
)
|
||||||
|
vim.fn.sign_define(
|
||||||
|
'DiagnosticSignHint',
|
||||||
|
{ text = '', texthl = 'DiagnosticSignHint' }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- end of junnplus/lsp-setup config
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -317,6 +357,11 @@ return {
|
|||||||
else
|
else
|
||||||
lsp_format_opt = 'fallback'
|
lsp_format_opt = 'fallback'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Disable autoformat for files in a certain path
|
||||||
|
local bufname = vim.api.nvim_buf_get_name(bufnr)
|
||||||
|
if bufname:match '/node_modules/' then return end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
timeout_ms = 500,
|
timeout_ms = 500,
|
||||||
lsp_format = lsp_format_opt,
|
lsp_format = lsp_format_opt,
|
||||||
@@ -326,6 +371,7 @@ return {
|
|||||||
lua = { 'stylua' },
|
lua = { 'stylua' },
|
||||||
sh = { 'shfmt' },
|
sh = { 'shfmt' },
|
||||||
bash = { 'shfmt' },
|
bash = { 'shfmt' },
|
||||||
|
php = { 'phpcbf' },
|
||||||
-- Conform can also run multiple formatters sequentially
|
-- Conform can also run multiple formatters sequentially
|
||||||
-- python = { "isort", "black" },
|
-- python = { "isort", "black" },
|
||||||
--
|
--
|
||||||
@@ -333,6 +379,10 @@ return {
|
|||||||
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
init = function()
|
||||||
|
-- If you want the formatexpr, here is the place to set it
|
||||||
|
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
-- Automatically install formatters registered with conform.nvim via mason.nvim
|
-- Automatically install formatters registered with conform.nvim via mason.nvim
|
||||||
-- https://github.com/zapling/mason-conform.nvim
|
-- https://github.com/zapling/mason-conform.nvim
|
||||||
|
|||||||
@@ -31,9 +31,43 @@ return {
|
|||||||
cmd = 'Neotree',
|
cmd = 'Neotree',
|
||||||
opts = {
|
opts = {
|
||||||
close_if_last_window = true,
|
close_if_last_window = true,
|
||||||
|
hide_root_node = true,
|
||||||
popup_border_style = 'rounded',
|
popup_border_style = 'rounded',
|
||||||
enable_git_status = true,
|
enable_git_status = true,
|
||||||
enable_diagnostics = true,
|
enable_diagnostics = true,
|
||||||
|
sources = {
|
||||||
|
'filesystem',
|
||||||
|
'buffers',
|
||||||
|
'document_symbols',
|
||||||
|
},
|
||||||
|
source_selector = {
|
||||||
|
winbar = true,
|
||||||
|
statusline = false,
|
||||||
|
separator = { left = '', right = '' },
|
||||||
|
show_separator_on_edge = true,
|
||||||
|
highlight_tab = 'SidebarTabInactive',
|
||||||
|
highlight_tab_active = 'SidebarTabActive',
|
||||||
|
highlight_background = 'StatusLine',
|
||||||
|
highlight_separator = 'SidebarTabInactiveSeparator',
|
||||||
|
highlight_separator_active = 'SidebarTabActiveSeparator',
|
||||||
|
},
|
||||||
|
event_handlers = {
|
||||||
|
{
|
||||||
|
event = 'file_opened',
|
||||||
|
handler = function(file_path)
|
||||||
|
require('neo-tree.command').execute { action = 'close' }
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
default_component_configs = {
|
||||||
|
indent = {
|
||||||
|
padding = 0,
|
||||||
|
},
|
||||||
|
name = {
|
||||||
|
use_git_status_colors = true,
|
||||||
|
highlight_opened_files = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
git_status = {
|
git_status = {
|
||||||
symbols = {
|
symbols = {
|
||||||
-- Change type
|
-- Change type
|
||||||
@@ -54,59 +88,18 @@ return {
|
|||||||
mappings = {
|
mappings = {
|
||||||
['<Esc>'] = 'close_window',
|
['<Esc>'] = 'close_window',
|
||||||
['q'] = 'close_window',
|
['q'] = 'close_window',
|
||||||
|
['<cr>'] = 'open_with_window_picker',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
filtered_items = {
|
filtered_items = {
|
||||||
hide_dotfiles = true,
|
hide_dotfiles = false,
|
||||||
hide_gitignored = true,
|
|
||||||
hide_hidden = true, -- only works on Windows for hidden files/directories
|
hide_hidden = true, -- only works on Windows for hidden files/directories
|
||||||
never_show = {
|
never_show = {
|
||||||
'.DS_Store',
|
'.DS_Store',
|
||||||
},
|
},
|
||||||
hide_by_name = {
|
hide_by_name = {
|
||||||
'node_modules',
|
'node_modules',
|
||||||
},
|
'.git',
|
||||||
always_show = {
|
|
||||||
'.actrc',
|
|
||||||
'.browserslistrc',
|
|
||||||
'.commitlintrc.json',
|
|
||||||
'.editorconfig',
|
|
||||||
'.env',
|
|
||||||
'.env.example',
|
|
||||||
'.envrc',
|
|
||||||
'.eslintrc.json',
|
|
||||||
'.github',
|
|
||||||
'.gitignore',
|
|
||||||
'.gitkeep',
|
|
||||||
'.ignore',
|
|
||||||
'.markdownlint.json',
|
|
||||||
'.markdownlint.yaml',
|
|
||||||
'.markdownlintignore',
|
|
||||||
'.nvmrc',
|
|
||||||
'.prettierignore',
|
|
||||||
'.prettierrc.js',
|
|
||||||
'.prettierrc.json',
|
|
||||||
'.prettierrc.yaml',
|
|
||||||
'.python-version',
|
|
||||||
'.releaserc.json',
|
|
||||||
'.shellcheckrc',
|
|
||||||
'.simple-git-hooks.json',
|
|
||||||
'.stylelintrc.json',
|
|
||||||
'.stylua.toml',
|
|
||||||
'.yamlignore',
|
|
||||||
'.yamllint.yaml',
|
|
||||||
},
|
|
||||||
always_show_by_pattern = {
|
|
||||||
'.*.json',
|
|
||||||
'.*.toml',
|
|
||||||
'.*.yaml',
|
|
||||||
'.*.yml',
|
|
||||||
'.*rc',
|
|
||||||
'.*rc.*',
|
|
||||||
'.env*',
|
|
||||||
'.prettierrc*',
|
|
||||||
'.markdownlint*',
|
|
||||||
'.stylua.*',
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,6 +7,121 @@ return {
|
|||||||
init = function() vim.cmd.colorscheme(vim.g.colors_theme) end,
|
init = function() vim.cmd.colorscheme(vim.g.colors_theme) end,
|
||||||
opts = {
|
opts = {
|
||||||
transparent = true,
|
transparent = true,
|
||||||
|
on_colors = function(colors)
|
||||||
|
colors.gitSigns = {
|
||||||
|
add = colors.teal,
|
||||||
|
change = colors.purple,
|
||||||
|
delete = colors.red,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
on_highlights = function(hl, c)
|
||||||
|
local util = require 'tokyonight.util'
|
||||||
|
local prompt = '#2d3149'
|
||||||
|
|
||||||
|
hl.NeoTreeFileNameOpened = {
|
||||||
|
fg = c.orange,
|
||||||
|
}
|
||||||
|
|
||||||
|
hl.GitSignsCurrentLineBlame = {
|
||||||
|
fg = c.fg_gutter,
|
||||||
|
}
|
||||||
|
|
||||||
|
hl.StatusLine = {
|
||||||
|
bg = util.darken(c.bg_dark, 0.98, '#000000'),
|
||||||
|
fg = c.fg_dark,
|
||||||
|
}
|
||||||
|
hl.StatusLineComment = {
|
||||||
|
bg = util.darken(c.bg_dark, 0.85, '#000000'),
|
||||||
|
fg = c.comment,
|
||||||
|
}
|
||||||
|
|
||||||
|
hl.LineNrAbove = {
|
||||||
|
fg = c.fg_gutter,
|
||||||
|
}
|
||||||
|
hl.LineNr = {
|
||||||
|
fg = util.lighten(c.fg_gutter, 0.7),
|
||||||
|
}
|
||||||
|
hl.LineNrBelow = {
|
||||||
|
fg = c.fg_gutter,
|
||||||
|
}
|
||||||
|
|
||||||
|
hl.MsgArea = {
|
||||||
|
bg = util.darken(c.bg_dark, 0.85, '#000000'),
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Spelling
|
||||||
|
hl.SpellBad = {
|
||||||
|
undercurl = true,
|
||||||
|
sp = '#7F3A43',
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
hl.TelescopeNormal = {
|
||||||
|
bg = c.bg_dark,
|
||||||
|
fg = c.fg_dark,
|
||||||
|
}
|
||||||
|
hl.TelescopeBorder = {
|
||||||
|
bg = c.bg_dark,
|
||||||
|
fg = c.bg_dark,
|
||||||
|
}
|
||||||
|
hl.TelescopePromptNormal = {
|
||||||
|
bg = prompt,
|
||||||
|
}
|
||||||
|
hl.TelescopePromptBorder = {
|
||||||
|
bg = prompt,
|
||||||
|
fg = prompt,
|
||||||
|
}
|
||||||
|
hl.TelescopePromptTitle = {
|
||||||
|
bg = c.bg,
|
||||||
|
fg = c.fg_dark,
|
||||||
|
}
|
||||||
|
hl.TelescopePreviewTitle = {
|
||||||
|
bg = c.bg_dark,
|
||||||
|
fg = c.bg_dark,
|
||||||
|
}
|
||||||
|
hl.TelescopeResultsTitle = {
|
||||||
|
bg = c.bg_dark,
|
||||||
|
fg = c.bg_dark,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Indent
|
||||||
|
hl.MiniIndentscopeSymbol = {
|
||||||
|
fg = util.darken(c.bg_highlight, 0.30),
|
||||||
|
}
|
||||||
|
hl.IblScope = {
|
||||||
|
fg = util.darken(c.bg_highlight, 0.80),
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Floaterm
|
||||||
|
hl.Floaterm = {
|
||||||
|
bg = prompt,
|
||||||
|
}
|
||||||
|
hl.FloatermBorder = {
|
||||||
|
bg = prompt,
|
||||||
|
fg = prompt,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Copilot
|
||||||
|
hl.CopilotSuggestion = {
|
||||||
|
fg = c.comment,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- NeoTree
|
||||||
|
hl.NeoTreeFileNameOpened = {
|
||||||
|
fg = c.fg,
|
||||||
|
bold = true,
|
||||||
|
}
|
||||||
|
hl.NvimTreeNormal = {
|
||||||
|
bg = util.darken(c.bg_dark, 0.85, '#000000'),
|
||||||
|
}
|
||||||
|
hl.NvimTreeNormalNC = {
|
||||||
|
bg = util.darken(c.bg_dark, 0.85, '#000000'),
|
||||||
|
}
|
||||||
|
hl.NvimTreeWinSeparator = {
|
||||||
|
fg = util.darken(c.bg_dark, 0.85, '#000000'),
|
||||||
|
bg = util.darken(c.bg_dark, 0.85, '#000000'),
|
||||||
|
}
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -27,6 +142,17 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- The fastest Neovim colorizer
|
||||||
|
-- https://github.com/catgoose/nvim-colorizer.lua
|
||||||
|
{
|
||||||
|
'catgoose/nvim-colorizer.lua',
|
||||||
|
opts = {
|
||||||
|
user_default_options = {
|
||||||
|
names = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
-- A neovim plugin that shows colorcolumn dynamically
|
-- A neovim plugin that shows colorcolumn dynamically
|
||||||
-- https://github.com/Bekaboo/deadcolumn.nvim
|
-- https://github.com/Bekaboo/deadcolumn.nvim
|
||||||
{ 'Bekaboo/deadcolumn.nvim' },
|
{ 'Bekaboo/deadcolumn.nvim' },
|
||||||
|
|||||||
1
config/tmux/plugins/tmux-fzf-url/LICENSE.txt
Normal file
1
config/tmux/plugins/tmux-fzf-url/LICENSE.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
https://wfxr.mit-license.org/2018
|
||||||
64
config/tmux/plugins/tmux-fzf-url/fzf-url.sh
Executable file
64
config/tmux/plugins/tmux-fzf-url/fzf-url.sh
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#===============================================================================
|
||||||
|
# Author: Wenxuan
|
||||||
|
# Email: wenxuangm@gmail.com
|
||||||
|
# Created: 2018-04-06 12:12
|
||||||
|
#===============================================================================
|
||||||
|
get_fzf_options()
|
||||||
|
{
|
||||||
|
local fzf_options
|
||||||
|
local fzf_default_options='-w 100% -h 50% --multi -0 --no-preview'
|
||||||
|
fzf_options="$(tmux show -gqv '@fzf-url-fzf-options')"
|
||||||
|
[ -n "$fzf_options" ] && echo "$fzf_options" || echo "$fzf_default_options"
|
||||||
|
}
|
||||||
|
|
||||||
|
fzf_filter()
|
||||||
|
{
|
||||||
|
eval "fzf-tmux $(get_fzf_options)"
|
||||||
|
}
|
||||||
|
|
||||||
|
custom_open=$3
|
||||||
|
open_url()
|
||||||
|
{
|
||||||
|
if [[ -n $custom_open ]]; then
|
||||||
|
$custom_open "$@"
|
||||||
|
elif hash xdg-open &> /dev/null; then
|
||||||
|
nohup xdg-open "$@"
|
||||||
|
elif hash open &> /dev/null; then
|
||||||
|
nohup open "$@"
|
||||||
|
elif [[ -n $BROWSER ]]; then
|
||||||
|
nohup "$BROWSER" "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
limit='screen'
|
||||||
|
[[ $# -ge 2 ]] && limit=$2
|
||||||
|
|
||||||
|
if [[ $limit == 'screen' ]]; then
|
||||||
|
content="$(tmux capture-pane -J -p -e | sed -r 's/\x1B\[[0-9;]*[mK]//g'))"
|
||||||
|
else
|
||||||
|
content="$(tmux capture-pane -J -p -e -S -"$limit" | sed -r 's/\x1B\[[0-9;]*[mK]//g'))"
|
||||||
|
fi
|
||||||
|
|
||||||
|
urls=$(echo "$content" | grep -oE '(https?|ftp|file):/?//[-A-Za-z0-9+&@#/%?=~_|!:,.;]*[-A-Za-z0-9+&@#/%=~_|]')
|
||||||
|
wwws=$(echo "$content" | grep -oE '(http?s://)?www\.[a-zA-Z](-?[a-zA-Z0-9])+\.[a-zA-Z]{2,}(/\S+)*' | grep -vE '^https?://' | sed 's/^\(.*\)$/http:\/\/\1/')
|
||||||
|
ips=$(echo "$content" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}(:[0-9]{1,5})?(/\S+)*' | sed 's/^\(.*\)$/http:\/\/\1/')
|
||||||
|
gits=$(echo "$content" | grep -oE '(ssh://)?git@\S*' | sed 's/:/\//g' | sed 's/^\(ssh\/\/\/\)\{0,1\}git@\(.*\)$/https:\/\/\2/')
|
||||||
|
gh=$(echo "$content" | grep -oE "['\"]([_A-Za-z0-9-]*/[_.A-Za-z0-9-]*)['\"]" | sed "s/['\"]//g" | sed 's#.#https://github.com/&#')
|
||||||
|
|
||||||
|
if [[ $# -ge 1 && $1 != '' ]]; then
|
||||||
|
extras=$(echo "$content" | eval "$1")
|
||||||
|
fi
|
||||||
|
|
||||||
|
items=$(
|
||||||
|
printf '%s\n' "${urls[@]}" "${wwws[@]}" "${gh[@]}" "${ips[@]}" "${gits[@]}" "${extras[@]}" \
|
||||||
|
| grep -v '^$' \
|
||||||
|
| sort -u \
|
||||||
|
| nl -w3 -s ' '
|
||||||
|
)
|
||||||
|
[ -z "$items" ] && tmux display 'tmux-fzf-url: no URLs found' && exit
|
||||||
|
|
||||||
|
fzf_filter <<< "$items" | awk '{print $2}' \
|
||||||
|
| while read -r chosen; do
|
||||||
|
open_url "$chosen" &> "/tmp/tmux-$(id -u)-fzf-url.log"
|
||||||
|
done
|
||||||
23
config/tmux/plugins/tmux-fzf-url/fzf-url.tmux
Executable file
23
config/tmux/plugins/tmux-fzf-url/fzf-url.tmux
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#===============================================================================
|
||||||
|
# Author: Wenxuan
|
||||||
|
# Email: wenxuangm@gmail.com
|
||||||
|
# Created: 2018-04-06 09:30
|
||||||
|
#===============================================================================
|
||||||
|
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||||
|
|
||||||
|
# $1: option
|
||||||
|
# $2: default value
|
||||||
|
tmux_get() {
|
||||||
|
local value
|
||||||
|
value="$(tmux show -gqv "$1")"
|
||||||
|
[ -n "$value" ] && echo "$value" || echo "$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
key="$(tmux_get '@fzf-url-bind' 'u')"
|
||||||
|
history_limit="$(tmux_get '@fzf-url-history-limit' 'screen')"
|
||||||
|
extra_filter="$(tmux_get '@fzf-url-extra-filter' '')"
|
||||||
|
custom_open="$(tmux_get '@fzf-url-open' '')"
|
||||||
|
echo "$extra_filter" >/tmp/filter
|
||||||
|
|
||||||
|
tmux bind-key "$key" run -b "$SCRIPT_DIR/fzf-url.sh '$extra_filter' $history_limit '$custom_open'"
|
||||||
@@ -7,35 +7,53 @@
|
|||||||
# ╭──────────────────────────────────────────────────────────╮
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
# │ Bindings │
|
# │ Bindings │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
# bind flags
|
||||||
|
# -r = repeatable, only needs prefix once
|
||||||
|
# -n = doesn't need prefix
|
||||||
|
# -t = binds to a certain key-table (root, copy-mode, prefix, etc.)
|
||||||
|
|
||||||
# Set <prefix> to Control + Space, keeping the default of C-b intact.
|
# Set <prefix> to Control + Space, keeping the default of C-b intact.
|
||||||
|
# C-Space send-prefix line doubles the prefix when in nested tmux session.
|
||||||
# unbind C-b
|
# unbind C-b
|
||||||
set -g prefix C-Space
|
set -g prefix C-Space
|
||||||
bind C-Space send-prefix
|
bind C-Space send-prefix
|
||||||
|
|
||||||
# Vim style pane selection
|
|
||||||
bind h select-pane -L
|
|
||||||
bind j select-pane -D
|
|
||||||
bind k select-pane -U
|
|
||||||
bind l select-pane -R
|
|
||||||
|
|
||||||
# Use Alt-arrow keys without prefix key to switch panes
|
# Use Alt-arrow keys without prefix key to switch panes
|
||||||
bind -n M-Left select-pane -L
|
bind -n M-Left select-pane -L
|
||||||
bind -n M-Right select-pane -R
|
bind -n M-Right select-pane -R
|
||||||
bind -n M-Up select-pane -U
|
bind -n M-Up select-pane -U
|
||||||
bind -n M-Down select-pane -D
|
bind -n M-Down select-pane -D
|
||||||
|
|
||||||
|
# Smart pane switching with awareness of vim splits
|
||||||
|
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"'
|
||||||
|
bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
|
||||||
|
bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
|
||||||
|
bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
|
||||||
|
bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
||||||
|
|
||||||
# Reload tmux config with <prefix> + r
|
# Reload tmux config with <prefix> + r
|
||||||
|
unbind r
|
||||||
bind r source-file ~/.dotfiles/config/tmux/tmux.conf \; display "tmux cfg reloaded!"
|
bind r source-file ~/.dotfiles/config/tmux/tmux.conf \; display "tmux cfg reloaded!"
|
||||||
|
|
||||||
# Switch to next client with <prefix>( and previous with <prefix>)
|
# Switch to next client with <prefix>( and previous with <prefix>)
|
||||||
|
# Repeatable, only needs prefix once
|
||||||
bind -r '(' switch-client -p\; refresh-client -S
|
bind -r '(' switch-client -p\; refresh-client -S
|
||||||
bind -r ')' switch-client -n\; refresh-client -S
|
bind -r ')' switch-client -n\; refresh-client -S
|
||||||
|
|
||||||
# tms, https://github.com/jrmoulton/tmux-sessionizer
|
# Switch between previous and next windows with repeatable
|
||||||
bind C-h display-popup -E "tms"
|
# <prefix> + n and <prefix> + p
|
||||||
bind C-j display-popup -E "tms switch"
|
bind -r n next-window
|
||||||
bind C-k display-popup -E "tms windows"
|
bind -r p previous-window
|
||||||
|
|
||||||
|
# Switch between two most recently used windows
|
||||||
|
bind Space last-window
|
||||||
|
|
||||||
|
# Move the current window to the next window or previous window position
|
||||||
|
bind -r N run-shell "tmux swap-window -t $(expr $(tmux list-windows | grep \"(active)\" | cut -d \":\" -f 1) + 1)"
|
||||||
|
bind -r P run-shell "tmux swap-window -t $(expr $(tmux list-windows | grep \"(active)\" | cut -d \":\" -f 1) - 1)"
|
||||||
|
|
||||||
|
bind-key > swap-window -t +1 \; next
|
||||||
|
bind-key < swap-window -t -1 \; prev
|
||||||
|
|
||||||
# Open a new window with <prefix> + N
|
# Open a new window with <prefix> + N
|
||||||
bind N new-window
|
bind N new-window
|
||||||
@@ -46,13 +64,18 @@ bind M-c attach-session -c "#{pane_current_path}"
|
|||||||
# Open a new window in the current directory
|
# Open a new window in the current directory
|
||||||
bind C new-window -c "#{pane_current_path}"
|
bind C new-window -c "#{pane_current_path}"
|
||||||
|
|
||||||
# keybindings
|
# Copy mode
|
||||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
bind -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||||
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||||
|
|
||||||
|
# Splits
|
||||||
bind '"' split-window -v -c "#{pane_current_path}"
|
bind '"' split-window -v -c "#{pane_current_path}"
|
||||||
bind '!' split-window -h -c "#{pane_current_path}"
|
bind '!' split-window -h -c "#{pane_current_path}"
|
||||||
bind '^' switch-client -t'{marked}'
|
|
||||||
|
# .local/bin/t triggers
|
||||||
|
bind -r T new-window ~/.local/bin/t
|
||||||
|
bind -r D run-shell "t ~/Code/ivuorinen/dotfiles"
|
||||||
|
|
||||||
# synchronize all panes in a window
|
# synchronize all panes in a window
|
||||||
bind y setw synchronize-panes
|
bind y setw synchronize-panes
|
||||||
@@ -70,12 +93,23 @@ bind p paste-buffer
|
|||||||
# │ Settings │
|
# │ Settings │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
set -g default-terminal "tmux-256color"
|
# set -g default-terminal "tmux-256color"
|
||||||
set -ag terminal-overrides ",xterm-256color:RGB"
|
# set -ag terminal-overrides ",xterm-256color:RGB"
|
||||||
|
|
||||||
|
# Undercurl
|
||||||
|
set -g default-terminal "${TERM}"
|
||||||
|
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
|
||||||
|
set -as terminal-overrides ',*:Setulc=\E[58::2::::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colors - needs tmux-3.0
|
||||||
|
|
||||||
|
# Enable hyperlinks
|
||||||
|
set -as terminal-overrides ',*:Hls=\E]8;id=%p1%s;%p2%s\E\\:Hlr=\E]8;;\E\\''
|
||||||
|
|
||||||
# Setting status on
|
# Setting status on
|
||||||
set -g status "on"
|
set -g status "on"
|
||||||
|
|
||||||
|
# Allow tmux to set the terminal title
|
||||||
|
set -g set-titles on
|
||||||
|
|
||||||
# Hide clock
|
# Hide clock
|
||||||
set -g display-time 0
|
set -g display-time 0
|
||||||
|
|
||||||
@@ -84,6 +118,9 @@ set -g monitor-activity on
|
|||||||
set -g visual-activity off
|
set -g visual-activity off
|
||||||
set -g visual-bell off
|
set -g visual-bell off
|
||||||
|
|
||||||
|
# A bell in another window should cause a bell in the current window
|
||||||
|
set -g bell-action any
|
||||||
|
|
||||||
# Expose window title
|
# Expose window title
|
||||||
set-option -g set-titles on
|
set-option -g set-titles on
|
||||||
|
|
||||||
@@ -108,6 +145,18 @@ set-option -g renumber-windows on
|
|||||||
# set vi-mode
|
# set vi-mode
|
||||||
set-window-option -g mode-keys vi
|
set-window-option -g mode-keys vi
|
||||||
|
|
||||||
|
# don't detach tmux when killing a session
|
||||||
|
set -g detach-on-destroy off
|
||||||
|
|
||||||
|
# address vim mode switching delay (http://superuser.com/a/252717/65504)
|
||||||
|
set -s escape-time 0
|
||||||
|
|
||||||
|
# Focus events enabled for terminals that support them
|
||||||
|
set -g focus-events on
|
||||||
|
|
||||||
|
# Useful when using sharing a session with different size terminals
|
||||||
|
setw -g aggressive-resize on
|
||||||
|
|
||||||
# ╭──────────────────────────────────────────────────────────╮
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
# │ Theme │
|
# │ Theme │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
@@ -121,7 +170,7 @@ set-option -g status-left ''
|
|||||||
set-option -g window-status-format ' #I:#W '
|
set-option -g window-status-format ' #I:#W '
|
||||||
set-option -g window-status-current-format ' #I:#W#{?window_zoomed_flag, ◈ ,} '
|
set-option -g window-status-current-format ' #I:#W#{?window_zoomed_flag, ◈ ,} '
|
||||||
|
|
||||||
set-option -g status-right "#{hostname_short}/#(tms sessions) #{tmux_mode_indicator}"
|
set-option -g status-right "#S@#{hostname_short} #{tmux_mode_indicator}"
|
||||||
|
|
||||||
set -g pane-border-style "fg=#3b4261"
|
set -g pane-border-style "fg=#3b4261"
|
||||||
set -g pane-active-border-style "fg=#7aa2f7"
|
set -g pane-active-border-style "fg=#7aa2f7"
|
||||||
@@ -159,6 +208,10 @@ set -g @mode_indicator_copy_mode_style 'bg=default,fg=yellow'
|
|||||||
set -g @mode_indicator_empty_mode_style 'bg=default,fg=#7aa2f7'
|
set -g @mode_indicator_empty_mode_style 'bg=default,fg=#7aa2f7'
|
||||||
set -g @mode_indicator_sync_mode_style 'bg=default,fg=red'
|
set -g @mode_indicator_sync_mode_style 'bg=default,fg=red'
|
||||||
|
|
||||||
|
# https://github.com/wfxr/tmux-fzf-url
|
||||||
|
set -g @fzf-url-bind 'u'
|
||||||
|
set -g @fzf-url-history-limit '2000'
|
||||||
|
|
||||||
# ╭──────────────────────────────────────────────────────────╮
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
# │ Plugins │
|
# │ Plugins │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
@@ -172,7 +225,7 @@ run-shell ~/.dotfiles/config/tmux/plugins/tmux-suspend/suspend.tmux
|
|||||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux
|
run-shell ~/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux
|
||||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-current-pane-hostname/current_pane_hostname.tmux
|
run-shell ~/.dotfiles/config/tmux/plugins/tmux-current-pane-hostname/current_pane_hostname.tmux
|
||||||
run-shell ~/.dotfiles/config/tmux/plugins/tmux-dark-notify/main.tmux
|
run-shell ~/.dotfiles/config/tmux/plugins/tmux-dark-notify/main.tmux
|
||||||
|
run-shell ~/.dotfiles/config/tmux/plugins/tmux-fzf-url/fzf-url.tmux
|
||||||
|
|
||||||
if-shell "test -e $HOME/.local/state/tmux/tmux-dark-notify-theme.conf" \
|
if-shell "test -e $HOME/.local/state/tmux/tmux-dark-notify-theme.conf" \
|
||||||
"source-file $HOME/.local/state/tmux/tmux-dark-notify-theme.conf"
|
"source-file $HOME/.local/state/tmux/tmux-dark-notify-theme.conf"
|
||||||
|
|
||||||
|
|||||||
75
config/zed/settings.json
Normal file
75
config/zed/settings.json
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
"assistant": {
|
||||||
|
"default_model": {
|
||||||
|
"provider": "copilot_chat",
|
||||||
|
"model": "gpt-4o"
|
||||||
|
},
|
||||||
|
"version": "2"
|
||||||
|
},
|
||||||
|
"formatter": {
|
||||||
|
"external": {
|
||||||
|
"command": "node_modules/.bin/prettier",
|
||||||
|
"arguments": [
|
||||||
|
"--stdin-filepath",
|
||||||
|
"{buffer_path}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"languages": {
|
||||||
|
"JavaScript": {
|
||||||
|
"enable_language_server": true,
|
||||||
|
"code_actions_on_format": {
|
||||||
|
"source.fixAll.eslint": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Lua": {
|
||||||
|
"enable_language_server": true,
|
||||||
|
"tab_size": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lsp": {
|
||||||
|
"eslint": {
|
||||||
|
"settings": {
|
||||||
|
"nodePath": "./node_modules/.bin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gopls": {
|
||||||
|
"initialization_options": {
|
||||||
|
"hints": {
|
||||||
|
"assignVariableTypes": true,
|
||||||
|
"compositeLiteralFields": true,
|
||||||
|
"compositeLiteralTypes": true,
|
||||||
|
"constantValues": true,
|
||||||
|
"functionTypeParameters": true,
|
||||||
|
"parameterNames": true,
|
||||||
|
"rangeVariableTypes": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"preferred_line_length": 100,
|
||||||
|
"format_on_save": "on",
|
||||||
|
"vim_mode": true,
|
||||||
|
"theme": {
|
||||||
|
"mode": "system",
|
||||||
|
"light": "Tokyo Night Light",
|
||||||
|
"dark": "Tokyo Night Storm"
|
||||||
|
},
|
||||||
|
"inlay_hints": {
|
||||||
|
"enabled": true,
|
||||||
|
"show_type_hints": true,
|
||||||
|
"show_parameter_hints": true,
|
||||||
|
"show_other_hints": true
|
||||||
|
},
|
||||||
|
"ui_font_size": 16,
|
||||||
|
"buffer_font_size": 16,
|
||||||
|
"buffer_font_fallbacks": [
|
||||||
|
"JetBrainsMono Nerd Font"
|
||||||
|
],
|
||||||
|
"inline_completions": {
|
||||||
|
"disabled_globs": [
|
||||||
|
".env"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hour_format": "hour24"
|
||||||
|
}
|
||||||
@@ -55,20 +55,15 @@ _dfm()
|
|||||||
'cargo:Install rust/cargo packages'
|
'cargo:Install rust/cargo packages'
|
||||||
'cheat-databases:Install cheat external cheatsheet databases'
|
'cheat-databases:Install cheat external cheatsheet databases'
|
||||||
'composer:Install composer'
|
'composer:Install composer'
|
||||||
'dotenv:Install dotenv-linter'
|
|
||||||
'fonts:Install programming fonts'
|
'fonts:Install programming fonts'
|
||||||
'gh:Install GitHub CLI Extensions'
|
'gh:Install GitHub CLI Extensions'
|
||||||
'go:Install Go Packages'
|
'go:Install Go Packages'
|
||||||
'imagick:Install ImageMagick CLI'
|
'imagick:Install ImageMagick CLI'
|
||||||
'starship:Install starship.rs'
|
|
||||||
'macos:Setup nice macOS defaults'
|
'macos:Setup nice macOS defaults'
|
||||||
'neofetch:Install neofetch'
|
|
||||||
'nvm:Install Node Version Manager'
|
'nvm:Install Node Version Manager'
|
||||||
'nvm-latest:Install latest LTS node'
|
'nvm-latest:Install latest LTS node'
|
||||||
'npm:Install NPM Packages'
|
'npm-packages:Install NPM Packages'
|
||||||
'ntfy:Install ntfy'
|
'ntfy:Install ntfy'
|
||||||
'ohmybash:Install oh-my-bash'
|
|
||||||
'pip:Install pip/python packages'
|
|
||||||
'z:Install z'
|
'z:Install z'
|
||||||
)
|
)
|
||||||
_describe 'install commands' install_cmds
|
_describe 'install commands' install_cmds
|
||||||
|
|||||||
@@ -2,68 +2,64 @@
|
|||||||
|
|
||||||
```txt
|
```txt
|
||||||
|
|
||||||
x <Space> *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
x <Space> *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "<Space>"
|
Query keys after "<Space>"
|
||||||
n <Space> *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n <Space> *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "<Space>"
|
Query keys after "<Space>"
|
||||||
x " *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
x " *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after """
|
Query keys after """
|
||||||
n " *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n " *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after """
|
Query keys after """
|
||||||
x ' *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
x ' *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "'"
|
Query keys after "'"
|
||||||
n ' *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n ' *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "'"
|
Query keys after "'"
|
||||||
x ` *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
x ` *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "`"
|
Query keys after "`"
|
||||||
n ` *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n ` *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "`"
|
Query keys after "`"
|
||||||
x g *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
x g *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "g"
|
Query keys after "g"
|
||||||
n g *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n g *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "g"
|
Query keys after "g"
|
||||||
x z *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
x z *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "z"
|
Query keys after "z"
|
||||||
n z *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n z *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "z"
|
Query keys after "z"
|
||||||
n <C-W> *@~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n <C-W> *@~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Query keys after "<C-W>"
|
Query keys after "<C-W>"
|
||||||
n <Esc><Esc> * :nohlsearch<CR>
|
n <Esc><Esc> * :nohlsearch<CR>
|
||||||
Clear Search Highlighting
|
Clear Search Highlighting
|
||||||
n <Space>qQ * :q!<CR>
|
n <Space>qQ * ~/.config/nvim/lua/keymaps.lua
|
||||||
Force quit without saving
|
Force quit without saving
|
||||||
n <Space>qw * :wq<CR>
|
n <Space>qw * :wq<CR>
|
||||||
Write and quit
|
Write and quit
|
||||||
n <Space>qq * :wq!<CR>
|
n <Space>qq * ~/.config/nvim/lua/keymaps.lua
|
||||||
Quit with force saving
|
Quit with force saving
|
||||||
n <Space>qf * :q<CR>
|
n <Space>qf * :q<CR>
|
||||||
Quicker close split
|
Quicker close split
|
||||||
n <Space>tn * :Noice dismiss<CR>
|
n <Space>tn * :Noice dismiss<CR>
|
||||||
Noice: Dismiss Notification
|
Noice: Dismiss Notification
|
||||||
n <Space>tl * :lua vim.o.bg = vim.o.bg:get() == "light" and "dark" or "light"<CR>
|
n <Space>tl * ~/.config/nvim/lua/utils.lua
|
||||||
Toggle Light/Dark Mode
|
Toggle Light/Dark Mode
|
||||||
n <Space>te * :Neotree toggle<CR>
|
n <Space>te * :Neotree toggle<CR>
|
||||||
Toggle Neotree
|
Toggle Neotree
|
||||||
n <Space>tc * :CloakToggle<CR>
|
n <Space>tc * :CloakToggle<CR>
|
||||||
Cloak: Toggle
|
Cloak: Toggle
|
||||||
n <Space>o * ~/.config/nvim/lua/keymaps.lua
|
|
||||||
Open repo in browser
|
|
||||||
n <Space>xx * :Trouble diagnostics<CR>
|
n <Space>xx * :Trouble diagnostics<CR>
|
||||||
Trouble: Diagnostic
|
Diagnostic
|
||||||
n <Space>xw * :Trouble workspace_diagnostics<CR>
|
n <Space>xw * :Trouble workspace_diagnostics<CR>
|
||||||
Trouble: Workspace Diagnostics
|
Workspace Diagnostics
|
||||||
n <Space>xq * :Trouble quickfix<CR>
|
n <Space>xq * :Trouble quickfix<CR>
|
||||||
Trouble: Quickfix
|
Quickfix
|
||||||
n <Space>xl * :Trouble loclist<CR>
|
n <Space>xl * :Trouble loclist<CR>
|
||||||
Trouble: Location List
|
Location List
|
||||||
n <Space>xd * :Trouble document_diagnostics<CR>
|
n <Space>xd * :Trouble document_diagnostics<CR>
|
||||||
Trouble: Document Diagnostics
|
Document Diagnostics
|
||||||
n <Space>sx * :Telescope import<CR>
|
n <Space>sx * :Telescope import<CR>
|
||||||
Telescope: Import
|
Telescope: Import
|
||||||
n <Space>sw * :Telescope grep_string<CR>
|
n <Space>sw * :Telescope grep_string<CR>
|
||||||
Grep String
|
Grep String
|
||||||
n <Space>st * :TodoTelescope<CR>
|
|
||||||
Search Todos
|
|
||||||
n <Space>ss * :Telescope treesitter<CR>
|
n <Space>ss * :Telescope treesitter<CR>
|
||||||
Treesitter
|
Treesitter
|
||||||
n <Space>sq * :Telescope quickfix<CR>
|
n <Space>sq * :Telescope quickfix<CR>
|
||||||
@@ -76,19 +72,27 @@ n <Space>sl * :Telescope luasnip<CR>
|
|||||||
Search LuaSnip
|
Search LuaSnip
|
||||||
n <Space>sk * :Telescope keymaps<CR>
|
n <Space>sk * :Telescope keymaps<CR>
|
||||||
Search Keymaps
|
Search Keymaps
|
||||||
n <Space>sh * :Telescope highlights<CR>
|
n <Space>sh * :Telescope help_tags<CR>
|
||||||
List Highlights
|
Help tags
|
||||||
n <Space>sg * :Telescope live_grep<CR>
|
n <Space>sg * :Telescope live_grep<CR>
|
||||||
Search by Grep
|
Search by Grep
|
||||||
n <Space>sd * :Telescope diagnostics<CR>
|
n <Space>sd * :Telescope diagnostics<CR>
|
||||||
Search Diagnostics
|
Search Diagnostics
|
||||||
n <Space>sc * :Telescope commands<CR>
|
n <Space>sc * :Telescope commands<CR>
|
||||||
Commands
|
Commands
|
||||||
|
n <Space>pt * :PhpactorTransform<CR>
|
||||||
|
PHPactor: Transform
|
||||||
|
n <Space>ps * :PhpactorClassSearch<CR>
|
||||||
|
PHPactor: Class Search
|
||||||
|
n <Space>pn * :PhpactorClassNew<CR>
|
||||||
|
PHPactor: Class New
|
||||||
|
n <Space>pm * :PhpactorContextMenu<CR>
|
||||||
|
PHPactor: Context Menu
|
||||||
n <Space>/ * ~/.config/nvim/lua/keymaps.lua
|
n <Space>/ * ~/.config/nvim/lua/keymaps.lua
|
||||||
Fuzzily search in current buffer
|
Fuzzily search in current buffer
|
||||||
n <Space>, * :Telescope buffers<CR>
|
n <Space>, * :Telescope buffers<CR>
|
||||||
Find existing buffers
|
Find existing buffers
|
||||||
n <Space>f * :Telescope find_files<CR>
|
n <Space>f * :Telescope fd --hidden=true<CR>
|
||||||
Find Files
|
Find Files
|
||||||
n <Space>cbt * <Cmd>CBllline<CR>
|
n <Space>cbt * <Cmd>CBllline<CR>
|
||||||
CB: Titled Line
|
CB: Titled Line
|
||||||
@@ -122,10 +126,8 @@ n <Space>cl * :Lspsaga show_cursor_diagnostics<CR>
|
|||||||
Cursor Diagnostics
|
Cursor Diagnostics
|
||||||
n <Space>ci * :Lspsaga implement<CR>
|
n <Space>ci * :Lspsaga implement<CR>
|
||||||
Implementations
|
Implementations
|
||||||
x <Space>cf * :lua vim.lsp.buf.format()<CR>
|
n <Space>cg * :lua require("neogen").generate()<CR>
|
||||||
Format
|
Generate annotations
|
||||||
n <Space>cf * :lua vim.lsp.buf.format()<CR>
|
|
||||||
Format
|
|
||||||
n <Space>cd * :Lspsaga show_line_diagnostics<CR>
|
n <Space>cd * :Lspsaga show_line_diagnostics<CR>
|
||||||
Line Diagnostics
|
Line Diagnostics
|
||||||
n <Space>cco * :Lspsaga outgoing_calls<CR>
|
n <Space>cco * :Lspsaga outgoing_calls<CR>
|
||||||
@@ -134,8 +136,6 @@ n <Space>cci * :Lspsaga incoming_calls<CR>
|
|||||||
Incoming Calls
|
Incoming Calls
|
||||||
n <Space>ca * :Lspsaga code_action<CR>
|
n <Space>ca * :Lspsaga code_action<CR>
|
||||||
Code Action
|
Code Action
|
||||||
n <Space>cg * :lua require("neogen").generate()<CR>
|
|
||||||
Generate annotations
|
|
||||||
n <Space>bw * :lua MiniBufremove.wipeout()<CR>
|
n <Space>bw * :lua MiniBufremove.wipeout()<CR>
|
||||||
Wipeout
|
Wipeout
|
||||||
n <Space>bl * :bnext<CR>
|
n <Space>bl * :bnext<CR>
|
||||||
@@ -148,6 +148,44 @@ n <Space>bh * :bprev<CR>
|
|||||||
Prev
|
Prev
|
||||||
n <Space>bd * :lua MiniBufremove.delete()<CR>
|
n <Space>bd * :lua MiniBufremove.delete()<CR>
|
||||||
Delete
|
Delete
|
||||||
|
n <Space>ba * :%bd|e#|bd#<CR>
|
||||||
|
Close all except current
|
||||||
|
n <Space>av * :silent TestVisit<CR>
|
||||||
|
Test Visit
|
||||||
|
n <Space>al * :silent TestLast<CR>
|
||||||
|
Test Last
|
||||||
|
n <Space>as * :silent TestSuite<CR>
|
||||||
|
Test Suite
|
||||||
|
n <Space>af * :silent TestFile<CR>
|
||||||
|
Test File
|
||||||
|
n <Space>an * :silent TestNearest<CR>
|
||||||
|
Test Nearest
|
||||||
|
n <Space>o * ~/.config/nvim/lua/keymaps.lua
|
||||||
|
Open repo in browser
|
||||||
|
n <Space>tmw * <Cmd>setlocal wrap! wrap?<CR>
|
||||||
|
Toggle 'wrap'
|
||||||
|
n <Space>tms * <Cmd>setlocal spell! spell?<CR>
|
||||||
|
Toggle 'spell'
|
||||||
|
n <Space>tmr * <Cmd>setlocal relativenumber! relativenumber?<CR>
|
||||||
|
Toggle 'relativenumber'
|
||||||
|
n <Space>tmn * <Cmd>setlocal number! number?<CR>
|
||||||
|
Toggle 'number'
|
||||||
|
n <Space>tml * <Cmd>setlocal list! list?<CR>
|
||||||
|
Toggle 'list'
|
||||||
|
n <Space>tmi * <Cmd>setlocal ignorecase! ignorecase?<CR>
|
||||||
|
Toggle 'ignorecase'
|
||||||
|
n <Space>tmh * <Cmd>let v:hlsearch = 1 - v:hlsearch | echo (v:hlsearch ? " " : "no") . "hlsearch"<CR>
|
||||||
|
Toggle search highlight
|
||||||
|
n <Space>tmd * <Cmd>lua print(MiniBasics.toggle_diagnostic())<CR>
|
||||||
|
Toggle diagnostic
|
||||||
|
n <Space>tmC * <Cmd>setlocal cursorcolumn! cursorcolumn?<CR>
|
||||||
|
Toggle 'cursorcolumn'
|
||||||
|
n <Space>tmc * <Cmd>setlocal cursorline! cursorline?<CR>
|
||||||
|
Toggle 'cursorline'
|
||||||
|
n <Space>tmb * <Cmd>lua vim.o.bg = vim.o.bg == "dark" and "light" or "dark"; print(vim.o.bg)<CR>
|
||||||
|
Toggle 'background'
|
||||||
|
<Space>cf * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
||||||
|
Format buffer
|
||||||
x # * vim/_defaults.lua
|
x # * vim/_defaults.lua
|
||||||
:help v_#-default
|
:help v_#-default
|
||||||
o % <Plug>(MatchitOperationForward)
|
o % <Plug>(MatchitOperationForward)
|
||||||
@@ -155,9 +193,13 @@ x % <Plug>(MatchitVisualForward)
|
|||||||
n % <Plug>(MatchitNormalForward)
|
n % <Plug>(MatchitNormalForward)
|
||||||
n & * :&&<CR>
|
n & * :&&<CR>
|
||||||
:help &-default
|
:help &-default
|
||||||
|
n '? & :<C-U>echo ":Start" dispatch#start_focus(v:count > 1 ? 0 : v:count ? line(".") : -1)<CR>
|
||||||
|
n '! & <SNR>30_:.Start!
|
||||||
|
n '<Space> & <SNR>30_:.Start<Space>
|
||||||
|
n '<CR> & <SNR>30_:.Start<CR>
|
||||||
x * * vim/_defaults.lua
|
x * * vim/_defaults.lua
|
||||||
:help v_star-default
|
:help v_star-default
|
||||||
o ; * ~/.local/share/nvim/lazy/mini.jump/lua/mini/jump.lua
|
o ; * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/jump.lua
|
||||||
Repeat jump
|
Repeat jump
|
||||||
x ; * <Cmd>lua MiniJump.jump()<CR>
|
x ; * <Cmd>lua MiniJump.jump()<CR>
|
||||||
Repeat jump
|
Repeat jump
|
||||||
@@ -171,11 +213,11 @@ v > * >gv
|
|||||||
Indent Right
|
Indent Right
|
||||||
n > * >gv
|
n > * >gv
|
||||||
Indent Right
|
Indent Right
|
||||||
n @ * ~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n @ * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Execute macro without 'mini.clue' triggers
|
Execute macro without 'mini.clue' triggers
|
||||||
x @ * mode() == 'V' ? ':normal! @'.getcharstr().'<CR>' : '@'
|
x @ * mode() ==# 'V' ? ':normal! @'.getcharstr().'<CR>' : '@'
|
||||||
:help v_@-default
|
:help v_@-default
|
||||||
o F * ~/.local/share/nvim/lazy/mini.jump/lua/mini/jump.lua
|
o F * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/jump.lua
|
||||||
Jump backward
|
Jump backward
|
||||||
x F * <Cmd>lua MiniJump.smart_jump(true, false)<CR>
|
x F * <Cmd>lua MiniJump.smart_jump(true, false)<CR>
|
||||||
Jump backward
|
Jump backward
|
||||||
@@ -183,11 +225,11 @@ n F * <Cmd>lua MiniJump.smart_jump(true, false)<CR>
|
|||||||
Jump backward
|
Jump backward
|
||||||
n K * :Lspsaga hover_doc<CR>
|
n K * :Lspsaga hover_doc<CR>
|
||||||
Hover Documentation
|
Hover Documentation
|
||||||
n Q * ~/.local/share/nvim/lazy/mini.clue/lua/mini/clue.lua
|
n Q * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/clue.lua
|
||||||
Execute macro without 'mini.clue' triggers
|
Execute macro without 'mini.clue' triggers
|
||||||
x Q * mode() == 'V' ? ':normal! @<C-R>=reg_recorded()<CR><CR>' : 'Q'
|
x Q * mode() ==# 'V' ? ':normal! @<C-R>=reg_recorded()<CR><CR>' : 'Q'
|
||||||
:help v_Q-default
|
:help v_Q-default
|
||||||
o T * ~/.local/share/nvim/lazy/mini.jump/lua/mini/jump.lua
|
o T * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/jump.lua
|
||||||
Jump backward till
|
Jump backward till
|
||||||
x T * <Cmd>lua MiniJump.smart_jump(true, true)<CR>
|
x T * <Cmd>lua MiniJump.smart_jump(true, true)<CR>
|
||||||
Jump backward till
|
Jump backward till
|
||||||
@@ -197,10 +239,10 @@ n Y * y$
|
|||||||
:help Y-default
|
:help Y-default
|
||||||
n Zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
n Zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
||||||
Flash Treesitter
|
Flash Treesitter
|
||||||
x Zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
|
||||||
Flash Treesitter
|
|
||||||
o Zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
o Zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
||||||
Flash Treesitter
|
Flash Treesitter
|
||||||
|
x Zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
||||||
|
Flash Treesitter
|
||||||
o [% <Plug>(MatchitOperationMultiBackward)
|
o [% <Plug>(MatchitOperationMultiBackward)
|
||||||
x [% <Plug>(MatchitVisualMultiBackward)
|
x [% <Plug>(MatchitVisualMultiBackward)
|
||||||
n [% <Plug>(MatchitNormalMultiBackward)
|
n [% <Plug>(MatchitNormalMultiBackward)
|
||||||
@@ -247,12 +289,18 @@ n ]h * <Cmd>lua MiniDiff.goto_hunk('next')<CR>
|
|||||||
Next hunk
|
Next hunk
|
||||||
n ]d * vim/_defaults.lua
|
n ]d * vim/_defaults.lua
|
||||||
Jump to the next diagnostic
|
Jump to the next diagnostic
|
||||||
|
n `? & <SNR>30_:.FocusDispatch<CR>
|
||||||
|
n `! & <SNR>30_:.Dispatch!
|
||||||
|
n `<Space> & <SNR>30_:.Dispatch<Space>
|
||||||
|
n `<CR> & <SNR>30_:.Dispatch<CR>
|
||||||
x a% <Plug>(MatchitVisualTextObject)
|
x a% <Plug>(MatchitVisualTextObject)
|
||||||
|
o ax <Plug>(textobj-xmlattr-attr-a)
|
||||||
|
x ax <Plug>(textobj-xmlattr-attr-a)
|
||||||
o ai * <Cmd>lua MiniIndentscope.textobject(true)<CR>
|
o ai * <Cmd>lua MiniIndentscope.textobject(true)<CR>
|
||||||
Object scope with border
|
Object scope with border
|
||||||
x ai * <Cmd>lua MiniIndentscope.textobject(true)<CR>
|
x ai * <Cmd>lua MiniIndentscope.textobject(true)<CR>
|
||||||
Object scope with border
|
Object scope with border
|
||||||
o f * ~/.local/share/nvim/lazy/mini.jump/lua/mini/jump.lua
|
o f * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/jump.lua
|
||||||
Jump forward
|
Jump forward
|
||||||
x f * <Cmd>lua MiniJump.smart_jump(false, false)<CR>
|
x f * <Cmd>lua MiniJump.smart_jump(false, false)<CR>
|
||||||
Jump forward
|
Jump forward
|
||||||
@@ -263,16 +311,18 @@ n gR * :RegexplainerToggle<CR>
|
|||||||
o g% <Plug>(MatchitOperationBackward)
|
o g% <Plug>(MatchitOperationBackward)
|
||||||
x g% <Plug>(MatchitVisualBackward)
|
x g% <Plug>(MatchitVisualBackward)
|
||||||
n g% <Plug>(MatchitNormalBackward)
|
n g% <Plug>(MatchitNormalBackward)
|
||||||
o gh * <Cmd>lua MiniDiff.textobject()<CR>
|
n g`? & :<C-U>echo ":Spawn" dispatch#spawn_focus(v:count > 1 ? 0 : v:count ? line(".") : -1)<CR>
|
||||||
Hunk range textobject
|
n g`! & <SNR>30_:.Spawn!
|
||||||
x gH * ~/.local/share/nvim/lazy/mini.diff/lua/mini/diff.lua
|
n g`<Space> & <SNR>30_:.Spawn<Space>
|
||||||
Reset hunks
|
n g`<CR> & <SNR>30_:.Spawn<CR>
|
||||||
n gH * ~/.local/share/nvim/lazy/mini.diff/lua/mini/diff.lua
|
n g'? & :<C-U>echo ":Spawn" dispatch#spawn_focus(v:count > 1 ? 0 : v:count ? line(".") : -1)<CR>
|
||||||
Reset hunks
|
n g'! & <SNR>30_:.Spawn!
|
||||||
x gh * ~/.local/share/nvim/lazy/mini.diff/lua/mini/diff.lua
|
n g'<Space> & <SNR>30_:.Spawn<Space>
|
||||||
Apply hunks
|
n g'<CR> & <SNR>30_:.Spawn<CR>
|
||||||
n gh * ~/.local/share/nvim/lazy/mini.diff/lua/mini/diff.lua
|
x gS * :<C-U>lua MiniSplitjoin.toggle({ region = MiniSplitjoin.get_visual_region() })<CR>
|
||||||
Apply hunks
|
Toggle arguments
|
||||||
|
n gS * v:lua.MiniSplitjoin.operator("toggle") . " "
|
||||||
|
Toggle arguments
|
||||||
x gs * <Cmd>lua MiniOperators.sort('visual')<CR>
|
x gs * <Cmd>lua MiniOperators.sort('visual')<CR>
|
||||||
Sort selection
|
Sort selection
|
||||||
n gss ^gsg_
|
n gss ^gsg_
|
||||||
@@ -299,88 +349,110 @@ n g== g=_
|
|||||||
Evaluate line
|
Evaluate line
|
||||||
n g= * v:lua.MiniOperators.evaluate()
|
n g= * v:lua.MiniOperators.evaluate()
|
||||||
Evaluate operator
|
Evaluate operator
|
||||||
x gS * :<C-U>lua MiniSplitjoin.toggle({ region = MiniSplitjoin.get_visual_region() })<CR>
|
o gh * <Cmd>lua MiniDiff.textobject()<CR>
|
||||||
Toggle arguments
|
Hunk range textobject
|
||||||
n gS * v:lua.MiniSplitjoin.operator("toggle") . " "
|
x gH * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/diff.lua
|
||||||
Toggle arguments
|
Reset hunks
|
||||||
|
n gH * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/diff.lua
|
||||||
|
Reset hunks
|
||||||
|
x gh * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/diff.lua
|
||||||
|
Apply hunks
|
||||||
|
n gh * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/diff.lua
|
||||||
|
Apply hunks
|
||||||
|
x g/ * <Esc>/\%V
|
||||||
|
Search inside visual selection
|
||||||
|
n gV * "`[" . strpart(getregtype(), 0, 1) . "`]"
|
||||||
|
Visually select changed text
|
||||||
|
x gp * "+P
|
||||||
|
Paste from system clipboard
|
||||||
|
n gp * "+p
|
||||||
|
Paste from system clipboard
|
||||||
|
x gy * "+y
|
||||||
|
Copy to system clipboard
|
||||||
|
n gy * "+y
|
||||||
|
Copy to system clipboard
|
||||||
|
n go * v:lua.MiniBasics.put_empty_line(v:false)
|
||||||
|
Put empty line below
|
||||||
|
n gO * v:lua.MiniBasics.put_empty_line(v:true)
|
||||||
|
Put empty line above
|
||||||
o gc * <Cmd>lua MiniComment.textobject()<CR>
|
o gc * <Cmd>lua MiniComment.textobject()<CR>
|
||||||
Comment textobject
|
Comment textobject
|
||||||
n gcc * ~/.local/share/nvim/lazy/mini.comment/lua/mini/comment.lua
|
n gcc * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/comment.lua
|
||||||
Comment line
|
Comment line
|
||||||
x gc * ~/.local/share/nvim/lazy/mini.comment/lua/mini/comment.lua
|
x gc * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/comment.lua
|
||||||
Comment selection
|
Comment selection
|
||||||
n gc * ~/.local/share/nvim/lazy/mini.comment/lua/mini/comment.lua
|
n gc * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/comment.lua
|
||||||
Comment
|
Comment
|
||||||
x gx * <Cmd>lua MiniOperators.exchange('visual')<CR>
|
x gx * <Cmd>lua MiniOperators.exchange('visual')<CR>
|
||||||
Exchange selection
|
Exchange selection
|
||||||
n gx * v:lua.MiniOperators.exchange()
|
n gx * v:lua.MiniOperators.exchange()
|
||||||
Exchange operator
|
Exchange operator
|
||||||
|
o ix <Plug>(textobj-xmlattr-attr-i)
|
||||||
|
x ix <Plug>(textobj-xmlattr-attr-i)
|
||||||
o ii * <Cmd>lua MiniIndentscope.textobject(false)<CR>
|
o ii * <Cmd>lua MiniIndentscope.textobject(false)<CR>
|
||||||
Object scope
|
Object scope
|
||||||
x ii * <Cmd>lua MiniIndentscope.textobject(false)<CR>
|
x ii * <Cmd>lua MiniIndentscope.textobject(false)<CR>
|
||||||
Object scope
|
Object scope
|
||||||
|
x j * v:count == 0 ? 'gj' : 'j'
|
||||||
n j * v:count == 0 ? 'gj' : 'j'
|
n j * v:count == 0 ? 'gj' : 'j'
|
||||||
Move down
|
Move down
|
||||||
|
x k * v:count == 0 ? 'gk' : 'k'
|
||||||
n k * v:count == 0 ? 'gk' : 'k'
|
n k * v:count == 0 ? 'gk' : 'k'
|
||||||
Move up
|
Move up
|
||||||
n shn * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n m? & :<C-U>echo ":Dispatch" dispatch#make_focus(v:count > 1 ? 0 : v:count ? line(".") : -1)<CR>
|
||||||
|
n m! & <SNR>30_:.Make!
|
||||||
|
n m<Space> & <SNR>30_:.Make<Space>
|
||||||
|
n m<CR> & <SNR>30_:.Make<CR>
|
||||||
|
n shn * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Highlight next surrounding
|
Highlight next surrounding
|
||||||
n sFn * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sFn * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Find next left surrounding
|
Find next left surrounding
|
||||||
n sfn * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sfn * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Find next right surrounding
|
Find next right surrounding
|
||||||
n srn * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n srn * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Replace next surrounding
|
Replace next surrounding
|
||||||
n sdn * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sdn * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Delete next surrounding
|
Delete next surrounding
|
||||||
n shl * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n shl * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Highlight previous surrounding
|
Highlight previous surrounding
|
||||||
n sFl * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sFl * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Find previous left surrounding
|
Find previous left surrounding
|
||||||
n sfl * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sfl * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Find previous right surrounding
|
Find previous right surrounding
|
||||||
n srl * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n srl * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Replace previous surrounding
|
Replace previous surrounding
|
||||||
n sdl * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sdl * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Delete previous surrounding
|
Delete previous surrounding
|
||||||
x sa * :<C-U>lua MiniSurround.add('visual')<CR>
|
x sa * :<C-U>lua MiniSurround.add('visual')<CR>
|
||||||
Add surrounding to selection
|
Add surrounding to selection
|
||||||
n sn * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sn * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Update `MiniSurround.config.n_lines`
|
Update `MiniSurround.config.n_lines`
|
||||||
n sh * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sh * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Highlight surrounding
|
Highlight surrounding
|
||||||
n sF * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sF * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Find left surrounding
|
Find left surrounding
|
||||||
n sf * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sf * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Find right surrounding
|
Find right surrounding
|
||||||
n sr * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sr * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Replace surrounding
|
Replace surrounding
|
||||||
n sd * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sd * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Delete surrounding
|
Delete surrounding
|
||||||
n sa * ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua
|
n sa * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/surround.lua
|
||||||
Add surrounding
|
Add surrounding
|
||||||
o t * ~/.local/share/nvim/lazy/mini.jump/lua/mini/jump.lua
|
o t * ~/.local/share/nvim/lazy/mini.nvim/lua/mini/jump.lua
|
||||||
Jump forward till
|
Jump forward till
|
||||||
x t * <Cmd>lua MiniJump.smart_jump(false, true)<CR>
|
x t * <Cmd>lua MiniJump.smart_jump(false, true)<CR>
|
||||||
Jump forward till
|
Jump forward till
|
||||||
n t * <Cmd>lua MiniJump.smart_jump(false, true)<CR>
|
n t * <Cmd>lua MiniJump.smart_jump(false, true)<CR>
|
||||||
Jump forward till
|
Jump forward till
|
||||||
|
o zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
||||||
|
Flash
|
||||||
x zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
x zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
||||||
Flash
|
Flash
|
||||||
n zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
n zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
||||||
Flash
|
Flash
|
||||||
o zk * ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua
|
n <F1> * :FloatermToggle<CR>
|
||||||
Flash
|
Toggle Floaterm
|
||||||
n <C-W>= * <C-W>=
|
|
||||||
Equal Size Splits
|
|
||||||
n <C-W>+ * :resize +5<CR>
|
|
||||||
H Resize +
|
|
||||||
n <C-W>- * :resize -5<CR>
|
|
||||||
H Resize -
|
|
||||||
n <C-W>. * :vertical resize +10<CR>
|
|
||||||
V Resize +
|
|
||||||
n <C-W>, * :vertical resize -10<CR>
|
|
||||||
V Resize -
|
|
||||||
v <C-J> * :m '>+1<CR>gv=gv
|
v <C-J> * :m '>+1<CR>gv=gv
|
||||||
Move Block Down
|
Move Block Down
|
||||||
n <C-J> * :m '>+1<CR>gv=gv
|
n <C-J> * :m '>+1<CR>gv=gv
|
||||||
@@ -389,12 +461,24 @@ v <C-K> * :m '<-2<CR>gv=gv
|
|||||||
Move Block Up
|
Move Block Up
|
||||||
n <C-K> * :m '<-2<CR>gv=gv
|
n <C-K> * :m '<-2<CR>gv=gv
|
||||||
Move Block Up
|
Move Block Up
|
||||||
n <C-S> * :w!<CR>
|
n <C-W>= * <C-W>=
|
||||||
Save
|
Equal Size Splits
|
||||||
|
n <C-W>+ * :resize +10<CR>
|
||||||
|
H Resize +
|
||||||
|
n <C-W>- * :resize -10<CR>
|
||||||
|
H Resize -
|
||||||
|
n <C-W>. * :vertical resize +10<CR>
|
||||||
|
V Resize +
|
||||||
|
n <C-W>, * :vertical resize -10<CR>
|
||||||
|
V Resize -
|
||||||
n <Down> * :echo "Use j to move!!"<CR>
|
n <Down> * :echo "Use j to move!!"<CR>
|
||||||
|
?
|
||||||
n <Up> * :echo "Use k to move!!"<CR>
|
n <Up> * :echo "Use k to move!!"<CR>
|
||||||
|
?
|
||||||
n <Right> * :echo "Use l to move!!"<CR>
|
n <Right> * :echo "Use l to move!!"<CR>
|
||||||
|
?
|
||||||
n <Left> * :echo "Use h to move!!"<CR>
|
n <Left> * :echo "Use h to move!!"<CR>
|
||||||
|
?
|
||||||
x <Plug>(MatchitVisualTextObject) <Plug>(MatchitVisualMultiBackward)o<Plug>(MatchitVisualMultiForward)
|
x <Plug>(MatchitVisualTextObject) <Plug>(MatchitVisualMultiBackward)o<Plug>(MatchitVisualMultiForward)
|
||||||
o <Plug>(MatchitOperationMultiForward) * :<C-U>call matchit#MultiMatch("W", "o")<CR>
|
o <Plug>(MatchitOperationMultiForward) * :<C-U>call matchit#MultiMatch("W", "o")<CR>
|
||||||
o <Plug>(MatchitOperationMultiBackward) * :<C-U>call matchit#MultiMatch("bW", "o")<CR>
|
o <Plug>(MatchitOperationMultiBackward) * :<C-U>call matchit#MultiMatch("bW", "o")<CR>
|
||||||
@@ -408,6 +492,14 @@ x <Plug>(MatchitVisualBackward) * :<C-U>call matchit#Match_wrapper('',0,'v')<CR
|
|||||||
x <Plug>(MatchitVisualForward) * :<C-U>call matchit#Match_wrapper('',1,'v')<CR>:if col("''") != col("$") | exe ":normal! m'" | endif<CR>gv``
|
x <Plug>(MatchitVisualForward) * :<C-U>call matchit#Match_wrapper('',1,'v')<CR>:if col("''") != col("$") | exe ":normal! m'" | endif<CR>gv``
|
||||||
n <Plug>(MatchitNormalBackward) * :<C-U>call matchit#Match_wrapper('',0,'n')<CR>
|
n <Plug>(MatchitNormalBackward) * :<C-U>call matchit#Match_wrapper('',0,'n')<CR>
|
||||||
n <Plug>(MatchitNormalForward) * :<C-U>call matchit#Match_wrapper('',1,'n')<CR>
|
n <Plug>(MatchitNormalForward) * :<C-U>call matchit#Match_wrapper('',1,'n')<CR>
|
||||||
|
n <SNR>30_:. & :<C-R>=getcmdline() =~ ',' ? "\0250" : ""<CR>
|
||||||
|
o <Plug>(textobj-xmlattr-attr-i) & <SNR>26_(save-cursor-pos):<C-U>call g:__textobj_xmlattr.do_by_pattern("select","attr-i","o")<CR>
|
||||||
|
v <Plug>(textobj-xmlattr-attr-i) & <SNR>26_(save-cursor-pos):<C-U>call g:__textobj_xmlattr.do_by_pattern("select","attr-i","v")<CR>
|
||||||
|
o <Plug>(textobj-xmlattr-attr-a) & <SNR>26_(save-cursor-pos):<C-U>call g:__textobj_xmlattr.do_by_pattern("select","attr-a","o")<CR>
|
||||||
|
v <Plug>(textobj-xmlattr-attr-a) & <SNR>26_(save-cursor-pos):<C-U>call g:__textobj_xmlattr.do_by_pattern("select","attr-a","v")<CR>
|
||||||
|
n <SNR>26_ * <SNR>26_
|
||||||
|
<SNR>26_(save-cursor-pos) * <SNR>26_save_cursor_pos()
|
||||||
|
n <Plug>PlenaryTestFile * :lua require('plenary.test_harness').test_file(vim.fn.expand("%:p"))<CR>
|
||||||
n <M-k> * <Cmd>lua MiniMove.move_line('up')<CR>
|
n <M-k> * <Cmd>lua MiniMove.move_line('up')<CR>
|
||||||
Move line up
|
Move line up
|
||||||
n <M-j> * <Cmd>lua MiniMove.move_line('down')<CR>
|
n <M-j> * <Cmd>lua MiniMove.move_line('down')<CR>
|
||||||
@@ -424,7 +516,10 @@ x <M-l> * <Cmd>lua MiniMove.move_selection('right')<CR>
|
|||||||
Move right
|
Move right
|
||||||
x <M-h> * <Cmd>lua MiniMove.move_selection('left')<CR>
|
x <M-h> * <Cmd>lua MiniMove.move_selection('left')<CR>
|
||||||
Move left
|
Move left
|
||||||
n <Plug>PlenaryTestFile * :lua require('plenary.test_harness').test_file(vim.fn.expand("%:p"))<CR>
|
x <C-S> * <Esc><Cmd>silent! update | redraw<CR>
|
||||||
|
Save and go to Normal mode
|
||||||
|
n <C-S> * :w!<CR>
|
||||||
|
Save
|
||||||
n <C-W><C-D> <C-W>d
|
n <C-W><C-D> <C-W>d
|
||||||
Show diagnostics under the cursor
|
Show diagnostics under the cursor
|
||||||
n <C-W>d * vim/_defaults.lua
|
n <C-W>d * vim/_defaults.lua
|
||||||
@@ -433,4 +528,4 @@ n <C-L> * :lua vim.lsp.buf.signature_help()<CR>
|
|||||||
Signature
|
Signature
|
||||||
```
|
```
|
||||||
|
|
||||||
- Generated on Mon 9 Dec 2024 10:05:25 EET
|
- Generated on Tue 7 Jan 2025 21:37:18 EET
|
||||||
|
|||||||
@@ -2,17 +2,11 @@
|
|||||||
|
|
||||||
Leader: `<ctrl><space>`
|
Leader: `<ctrl><space>`
|
||||||
|
|
||||||
```
|
```txt
|
||||||
C-o Rotate through the panes
|
|
||||||
C-z Suspend the current client
|
|
||||||
Space Select next layout
|
|
||||||
# List all paste buffers
|
|
||||||
$ Rename current session
|
$ Rename current session
|
||||||
% Split window horizontally
|
% Split window horizontally
|
||||||
& Kill current window
|
& Kill current window
|
||||||
' Prompt for window index to select
|
' Prompt for window index to select
|
||||||
( Switch to previous client
|
|
||||||
) Switch to next client
|
|
||||||
, Rename current window
|
, Rename current window
|
||||||
- Delete the most recent paste buffer
|
- Delete the most recent paste buffer
|
||||||
. Move the current window
|
. Move the current window
|
||||||
@@ -31,7 +25,6 @@ Leader: `<ctrl><space>`
|
|||||||
; Move to the previously active pane
|
; Move to the previously active pane
|
||||||
= Choose a paste buffer from a list
|
= Choose a paste buffer from a list
|
||||||
? List key bindings
|
? List key bindings
|
||||||
D Choose and detach a client from a list
|
|
||||||
E Spread panes out evenly
|
E Spread panes out evenly
|
||||||
L Switch to the last client
|
L Switch to the last client
|
||||||
M Clear the marked pane
|
M Clear the marked pane
|
||||||
@@ -41,7 +34,6 @@ Leader: `<ctrl><space>`
|
|||||||
f Search for a pane
|
f Search for a pane
|
||||||
i Display window information
|
i Display window information
|
||||||
m Toggle the marked pane
|
m Toggle the marked pane
|
||||||
n Select the next window
|
|
||||||
o Select the next pane
|
o Select the next pane
|
||||||
q Display pane numbers
|
q Display pane numbers
|
||||||
s Choose a session from a list
|
s Choose a session from a list
|
||||||
@@ -63,6 +55,8 @@ Leader: `<ctrl><space>`
|
|||||||
M-3 Set the main-horizontal layout
|
M-3 Set the main-horizontal layout
|
||||||
M-4 Set the main-vertical layout
|
M-4 Set the main-vertical layout
|
||||||
M-5 Select the tiled layout
|
M-5 Select the tiled layout
|
||||||
|
M-6 Set the main-horizontal-mirrored layout
|
||||||
|
M-7 Set the main-vertical-mirrored layout
|
||||||
M-n Select the next window with an alert
|
M-n Select the next window with an alert
|
||||||
M-o Rotate through the panes in reverse
|
M-o Rotate through the panes in reverse
|
||||||
M-p Select the previous window with an alert
|
M-p Select the previous window with an alert
|
||||||
@@ -70,6 +64,8 @@ Leader: `<ctrl><space>`
|
|||||||
M-Down Resize the pane down by 5
|
M-Down Resize the pane down by 5
|
||||||
M-Left Resize the pane left by 5
|
M-Left Resize the pane left by 5
|
||||||
M-Right Resize the pane right by 5
|
M-Right Resize the pane right by 5
|
||||||
|
C-o Rotate through the panes
|
||||||
|
C-z Suspend the current client
|
||||||
C-Up Resize the pane up
|
C-Up Resize the pane up
|
||||||
C-Down Resize the pane down
|
C-Down Resize the pane down
|
||||||
C-Left Resize the pane left
|
C-Left Resize the pane left
|
||||||
|
|||||||
@@ -277,4 +277,4 @@ Mouse: alt_screen
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
- Generated on Sat 10 Aug 2024 13:01:59 EEST
|
- Generated on Thu 2 Jan 2025 17:41:13 EET
|
||||||
|
|||||||
@@ -91,23 +91,19 @@ section_install()
|
|||||||
|
|
||||||
MENU=(
|
MENU=(
|
||||||
"all:Installs everything in the correct order"
|
"all:Installs everything in the correct order"
|
||||||
|
"asdf:Install asdf plugins"
|
||||||
"cargo:Install rust/cargo packages"
|
"cargo:Install rust/cargo packages"
|
||||||
"cheat-databases:Install cheat external cheatsheet databases"
|
"cheat-databases:Install cheat external cheatsheet databases"
|
||||||
"composer:Install composer"
|
"composer:Install composer"
|
||||||
"dotenv:Install dotenv-linter"
|
|
||||||
"fonts:Install programming fonts"
|
"fonts:Install programming fonts"
|
||||||
"gh:Install GitHub CLI Extensions"
|
"gh:Install GitHub CLI Extensions"
|
||||||
"go:Install Go Packages"
|
"go:Install Go Packages"
|
||||||
"imagick:Install ImageMagick CLI"
|
"imagick:Install ImageMagick CLI"
|
||||||
"macos:Setup nice macOS defaults"
|
"macos:Setup nice macOS defaults"
|
||||||
"neofetch:Install neofetch"
|
"npm-packages:Install NPM Packages"
|
||||||
"npm:Install NPM Packages"
|
|
||||||
"ntfy:Install ntfy"
|
"ntfy:Install ntfy"
|
||||||
"nvm-latest:Install latest lts node using nvm"
|
"nvm-latest:Install latest lts node using nvm"
|
||||||
"nvm:Install Node Version Manager (nvm)"
|
"nvm:Install Node Version Manager (nvm)"
|
||||||
"ohmybash:Install oh-my-bash"
|
|
||||||
"pip:Install pip/python packages"
|
|
||||||
"starship:Install starship.rs"
|
|
||||||
"z:Install z"
|
"z:Install z"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -131,7 +127,7 @@ section_install()
|
|||||||
|
|
||||||
asdf)
|
asdf)
|
||||||
msgr run "Installing asdf..."
|
msgr run "Installing asdf..."
|
||||||
$0 asdf plugins-add \
|
$0 asdf plugins-install \
|
||||||
&& msgr yay "asdf plugins installed!"
|
&& msgr yay "asdf plugins installed!"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -161,12 +157,6 @@ section_install()
|
|||||||
&& msgr yay "Installed fonts!"
|
&& msgr yay "Installed fonts!"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
fzf)
|
|
||||||
msgr run "Installing fzf..."
|
|
||||||
bash "$DOTFILES/scripts/install-fzf.sh" \
|
|
||||||
&& msgr yay "fzf installed!"
|
|
||||||
;;
|
|
||||||
|
|
||||||
gh)
|
gh)
|
||||||
msgr run "Installing GitHub CLI Extensions..."
|
msgr run "Installing GitHub CLI Extensions..."
|
||||||
bash "$DOTFILES/scripts/install-gh-extensions.sh" \
|
bash "$DOTFILES/scripts/install-gh-extensions.sh" \
|
||||||
@@ -355,30 +345,30 @@ section_asdf()
|
|||||||
plugins-install)
|
plugins-install)
|
||||||
msgr run "Installing plugins from configuration"
|
msgr run "Installing plugins from configuration"
|
||||||
|
|
||||||
# Asennetaan ensin direnv jos sitä ei ole
|
# First install direnv if it's not installed
|
||||||
if ! asdf plugin list | grep -q "^direnv$"; then
|
if ! asdf plugin list | grep -q "^direnv$"; then
|
||||||
msgr nested "Installing direnv plugin"
|
msgr nested "Installing direnv plugin"
|
||||||
asdf plugin add direnv https://github.com/asdf-community/asdf-direnv.git
|
asdf plugin add direnv https://github.com/asdf-community/asdf-direnv.git
|
||||||
|
|
||||||
# Asennetaan direnv latest
|
# Install latest direnv
|
||||||
local latest_direnv
|
local latest_direnv
|
||||||
latest_direnv=$(asdf latest direnv)
|
latest_direnv=$(asdf latest direnv)
|
||||||
asdf install direnv "$latest_direnv"
|
asdf install direnv "$latest_direnv"
|
||||||
asdf global direnv "$latest_direnv"
|
asdf global direnv "$latest_direnv"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Tarkistetaan että kaikki konfiguroidut pluginit on asennettu
|
# Check that all plugins are installed
|
||||||
local installed_plugins
|
local installed_plugins
|
||||||
installed_plugins=$(asdf plugin list)
|
installed_plugins=$(asdf plugin list)
|
||||||
|
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
# Ohita tyhjät rivit ja kommentit
|
# Skip empty lines and comments
|
||||||
[[ -z $line || $line =~ ^# ]] && continue
|
[[ -z $line || $line =~ ^# ]] && continue
|
||||||
|
|
||||||
local plugin
|
local plugin
|
||||||
plugin=$(echo "$line" | awk '{print $1}')
|
plugin=$(echo "$line" | awk '{print $1}')
|
||||||
|
|
||||||
# Ohita direnv, käsiteltiin jo
|
# Skip direnv, it's already installed
|
||||||
[[ $plugin == "direnv" ]] && continue
|
[[ $plugin == "direnv" ]] && continue
|
||||||
|
|
||||||
if ! echo "$installed_plugins" | grep -q "^${plugin}$"; then
|
if ! echo "$installed_plugins" | grep -q "^${plugin}$"; then
|
||||||
@@ -437,10 +427,11 @@ section_asdf()
|
|||||||
local installed_plugins
|
local installed_plugins
|
||||||
installed_plugins=$(asdf plugin list | sort)
|
installed_plugins=$(asdf plugin list | sort)
|
||||||
|
|
||||||
# Compare .tool-versions and installed plugins, remove unknown plugins from .tool-versions
|
# Compare .tool-versions and installed plugins,
|
||||||
|
# remove unknown plugins from .tool-versions
|
||||||
msgr nested "Updating tool-versions file"
|
msgr nested "Updating tool-versions file"
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
# Säilytä kommentit ja tyhjät rivit
|
# Keep comments and empty lines
|
||||||
if [[ -z $line || $line =~ ^[[:space:]]*# ]]; then
|
if [[ -z $line || $line =~ ^[[:space:]]*# ]]; then
|
||||||
echo "$line" >> "$temp_file"
|
echo "$line" >> "$temp_file"
|
||||||
continue
|
continue
|
||||||
@@ -494,7 +485,6 @@ section_helpers()
|
|||||||
"env:Show environment variables"
|
"env:Show environment variables"
|
||||||
"functions:Show functions"
|
"functions:Show functions"
|
||||||
"nvim:Show nvim keybindings"
|
"nvim:Show nvim keybindings"
|
||||||
# shellcheck disable=SC2016
|
|
||||||
'path:Show $PATH dir by dir'
|
'path:Show $PATH dir by dir'
|
||||||
"tmux:Show tmux keybindings"
|
"tmux:Show tmux keybindings"
|
||||||
"wezterm:Show wezterm keybindings"
|
"wezterm:Show wezterm keybindings"
|
||||||
|
|||||||
45
local/bin/t
Executable file
45
local/bin/t
Executable file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Credit to ThePrimeagen, jessarcher
|
||||||
|
# https://github.com/jessarcher/dotfiles/blob/master/scripts/t
|
||||||
|
#
|
||||||
|
# Tweaks by Ismo Vuorinen <https://github.com/ivuorinen> 2025
|
||||||
|
|
||||||
|
# Set environment variables for configuration with defaults
|
||||||
|
T_ROOT="${T_ROOT:-$HOME/Code}"
|
||||||
|
DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
|
||||||
|
|
||||||
|
# Function to print an error message and exit
|
||||||
|
error_exit()
|
||||||
|
{
|
||||||
|
echo "Error: $1" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Select the directory
|
||||||
|
if [[ $# -eq 1 ]]; then
|
||||||
|
selected="$1"
|
||||||
|
else
|
||||||
|
items=$(find "$T_ROOT" -maxdepth 2 -mindepth 1 -type d)
|
||||||
|
items+="$(printf "\n%s" "$DOTFILES")"
|
||||||
|
items+="$(printf "\n/tmp")"
|
||||||
|
selected=$(echo -e "$items" | fzf) || exit 0 # Exit if no selection is made
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Exit if no directory was selected
|
||||||
|
[[ -z $selected ]] && error_exit "No directory selected."
|
||||||
|
|
||||||
|
# Sanitize the session name
|
||||||
|
dirname=$(basename "$selected" | tr '.' '_')
|
||||||
|
|
||||||
|
# Try to switch to the tmux session
|
||||||
|
if tmux switch-client -t "=$dirname" 2> /dev/null; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create a new tmux session or attach to an existing one
|
||||||
|
if tmux new-session -c "$selected" -d -s "$dirname" 2> /dev/null; then
|
||||||
|
tmux switch-client -t "$dirname"
|
||||||
|
else
|
||||||
|
tmux new -c "$selected" -A -s "$dirname"
|
||||||
|
fi
|
||||||
@@ -23,7 +23,8 @@ generate_tmux_keybindings()
|
|||||||
{
|
{
|
||||||
local tmux_keybindings_docs="$1"
|
local tmux_keybindings_docs="$1"
|
||||||
|
|
||||||
local cb="\n\`\`\`\n"
|
local cb="\n\`\`\`txt\n"
|
||||||
|
local cbe="\n\`\`\`\n"
|
||||||
local kb
|
local kb
|
||||||
kb=$(tmux lsk -Tprefix -N | sed -e 's/^/ /;')
|
kb=$(tmux lsk -Tprefix -N | sed -e 's/^/ /;')
|
||||||
local h="# tmux keybindings\n"
|
local h="# tmux keybindings\n"
|
||||||
@@ -33,7 +34,7 @@ generate_tmux_keybindings()
|
|||||||
kb="${kb//$HOME/\$HOME}"
|
kb="${kb//$HOME/\$HOME}"
|
||||||
|
|
||||||
msg "Outputting tmux keybindings to $tmux_keybindings_docs"
|
msg "Outputting tmux keybindings to $tmux_keybindings_docs"
|
||||||
echo -e "${h}${l}${cb}${kb}${cb}" > "$tmux_keybindings_docs"
|
echo -e "${h}${l}${cb}${kb}${cbe}" > "$tmux_keybindings_docs"
|
||||||
msg "Done!"
|
msg "Done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
128
local/bin/x-localip
Executable file
128
local/bin/x-localip
Executable file
@@ -0,0 +1,128 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# x-localip: script to display the local IP addresses of the system
|
||||||
|
#
|
||||||
|
# Author: Ismo Vuorinen <https://github.com/ivuorinen>
|
||||||
|
# License: MIT
|
||||||
|
|
||||||
|
VERSION="1.0.0"
|
||||||
|
|
||||||
|
# Function to display usage
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
echo "Usage: x-localip [options] [interface]"
|
||||||
|
echo "Options:"
|
||||||
|
echo " --help Show this help message"
|
||||||
|
echo " --version Show version information"
|
||||||
|
echo " --ipv4 Show only IPv4 addresses"
|
||||||
|
echo " --ipv6 Show only IPv6 addresses"
|
||||||
|
echo "If an interface is specified, only the IP address of that interface will be returned."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialize flags for filtering
|
||||||
|
show_ipv4=true
|
||||||
|
show_ipv6=true
|
||||||
|
|
||||||
|
# Check for arguments
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--help)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--version)
|
||||||
|
echo "x-localip version $VERSION"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--ipv4)
|
||||||
|
show_ipv6=false
|
||||||
|
;;
|
||||||
|
--ipv6)
|
||||||
|
show_ipv4=false
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
iface=$1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
declare -a interfaces
|
||||||
|
|
||||||
|
# Detect platform (macOS or Linux)
|
||||||
|
platform="$(uname)"
|
||||||
|
if [[ $platform == "Darwin" ]]; then
|
||||||
|
read -r -a interfaces <<< "$(ifconfig -lu | grep -v '^bridge')"
|
||||||
|
elif [[ $platform == "Linux" ]]; then
|
||||||
|
read -r -a interfaces <<< "$(ip link show | awk -F: '/^[0-9]+:/{print $2}' | tr -d ' ' | grep -v '^bridge')"
|
||||||
|
else
|
||||||
|
echo "Error: Unsupported platform. Only macOS and Linux are supported."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Function to fetch IP addresses for an interface
|
||||||
|
fetch_ips()
|
||||||
|
{
|
||||||
|
iface="$1"
|
||||||
|
local ipv4 ipv6
|
||||||
|
if [[ $platform == "Darwin" ]]; then
|
||||||
|
ipv4=$(ipconfig getifaddr "$iface" 2> /dev/null || echo "")
|
||||||
|
ipv6=$(ipconfig getifaddr -v6 "$iface" 2> /dev/null || echo "")
|
||||||
|
else
|
||||||
|
ipv4=$(ip -4 addr show "$iface" 2> /dev/null | awk '/inet / {print $2}' || echo "")
|
||||||
|
ipv6=$(ip -6 addr show "$iface" 2> /dev/null | awk '/inet6 / {print $2}' || echo "")
|
||||||
|
fi
|
||||||
|
if [[ -n $ipv4 || -n $ipv6 ]]; then
|
||||||
|
echo "$iface:$ipv4:$ipv6"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Determine maximum lengths for formatting
|
||||||
|
max_iface_length=9 # "Interface" length
|
||||||
|
max_ipv4_length=11 # "IPv4 Address" length
|
||||||
|
max_ipv6_length=11 # "IPv6 Address" length
|
||||||
|
|
||||||
|
interface_ip_list=()
|
||||||
|
for iface in "${interfaces[@]}"; do
|
||||||
|
result=$(fetch_ips "$iface")
|
||||||
|
if [[ -n $result ]]; then
|
||||||
|
interface_ip_list+=("$result")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
interface_ip_list_array=()
|
||||||
|
for entry in "${interface_ip_list[@]}"; do
|
||||||
|
IFS=: read -r iface ipv4 ipv6 <<< "$entry"
|
||||||
|
[[ ${#iface} -gt $max_iface_length ]] && max_iface_length=${#iface}
|
||||||
|
[[ ${#ipv4} -gt $max_ipv4_length ]] && max_ipv4_length=${#ipv4}
|
||||||
|
[[ ${#ipv6} -gt $max_ipv6_length ]] && max_ipv6_length=${#ipv6}
|
||||||
|
interface_ip_list_array+=("$iface:$ipv4:$ipv6")
|
||||||
|
done
|
||||||
|
|
||||||
|
# Print headers
|
||||||
|
printf "%-${max_iface_length}s : %-${max_ipv4_length}s : %-${max_ipv6_length}s\n" "Interface" "IPv4 Address" "IPv6 Address"
|
||||||
|
printf "%0.s-" $(seq 1 $((max_iface_length + max_ipv4_length + max_ipv6_length + 6)))
|
||||||
|
printf "\n"
|
||||||
|
|
||||||
|
# Print the results in a formatted table
|
||||||
|
for entry in "${interface_ip_list_array[@]}"; do
|
||||||
|
# Split the entry into interface, IPv4, and IPv6
|
||||||
|
iface="${entry%%:*}"
|
||||||
|
rest="${entry#*:}"
|
||||||
|
ipv4="${rest%%:*}"
|
||||||
|
ipv6="${rest#*:}"
|
||||||
|
|
||||||
|
# Skip IPv4 or IPv6 as per the flags
|
||||||
|
ipv4_display=$([[ $show_ipv4 == true ]] && echo "$ipv4" || echo "")
|
||||||
|
ipv6_display=$([[ $show_ipv6 == true ]] && echo "$ipv6" || echo "")
|
||||||
|
|
||||||
|
# Print the interface name, padded to max_iface_length, followed by the IPs
|
||||||
|
printf "%-${max_iface_length}s" "$iface"
|
||||||
|
if $show_ipv4; then
|
||||||
|
printf " : %-${max_ipv4_length}s" "$ipv4_display"
|
||||||
|
fi
|
||||||
|
if $show_ipv6; then
|
||||||
|
printf " : %-${max_ipv6_length}s" "$ipv6_display"
|
||||||
|
fi
|
||||||
|
printf "\n"
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user