blob: 22924e9e40cbcb715f35907e52800de644e09c50 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# -----------------------------------------------------------------------------
# - ENVIRONMENT VARIABLES -
# -----------------------------------------------------------------------------
[Environment]::SetEnvironmentVariable("POWERSHELL_TELEMETRY_OPTOUT", "1")
[Environment]::SetEnvironmentVariable("EDITOR", "vim")
[Environment]::SetEnvironmentVariable("VISUAL", "code")
$env:PATH += ":$env:HOME/go/bin"
if ($IsWindows) {
[Environment]::SetEnvironmentVariable("XDG_CONFIG_HOME", "$env:USERPROFILE/.config")
} else {
[Environment]::SetEnvironmentVariable("XDG_CONFIG_HOME", "$env:HOME/.config")
}
if (-not(Test-Path -Path $env:XDG_CONFIG_HOME -PathType Container)) {
New-Item -Path $env:XDG_CONFIG_HOME -ItemType Directory
}
# -----------------------------------------------------------------------------
# - MODULES -
# -----------------------------------------------------------------------------
Import-Module -Name PSFzf -ErrorAction 'SilentlyContinue'
Import-Module -Name posh-git -ErrorAction 'SilentlyContinue'
# -----------------------------------------------------------------------------
# - PROMPT -
# -----------------------------------------------------------------------------
function prompt {
$git_branch = $(git branch --show-current 2>/dev/null)
if ($git_branch -ne $null -and $git_branch -ne "") {
$git_branch = "($($git_branch))"
}
$hostname = [System.Net.Dns]::GetHostName().Split(".")[0]
$pathname = Split-Path -Path $pwd -Leaf
$path = if ($pathname -eq $env:USER) { "~" } else { $pathname }
"[pwsh] `e[01;32m$($env:USER)@$($hostname)`e[00m:`e[01;34m$($path) `e[1;35m$git_branch`e[00m`$ "
}
# -----------------------------------------------------------------------------
# - STYLES -
# -----------------------------------------------------------------------------
# disable color for directory listings
$PSStyle.FileInfo.Directory = ''
# -----------------------------------------------------------------------------
# - CUSTOM FUNCTIONS -
# -----------------------------------------------------------------------------
function New-Note {
param(
[Parameter()]
[string] $Name = "{0}.md" -f (New-Guid)
)
$path = Join-Path $env:HOME "notes" $Name
"$env:EDITOR $path" | Invoke-Expression
}
function Open-Note {
param(
[Parameter()]
[string] $Name = ""
)
$notesPath = Join-Path $env:HOME "notes"
$path = Join-Path $notesPath $Name
if (Test-Path $path) {
"$env:EDITOR $path" | Invoke-Expression
} else {
"$env:EDITOR $notesPath" | Invoke-Expression
}
}
# -----------------------------------------------------------------------------
# - PSREADLINE CONFIGURATIONS -
# -----------------------------------------------------------------------------
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Set-PSReadLineKeyHandler -Chord "Alt+RightArrow" -Function ForwardWord
Set-PSReadLineKeyHandler -Chord "Alt+LeftArrow" -Function BackwardWord
Set-PSReadLineKeyHandler -Chord "Alt+LeftArrow" -Function BackwardWord
Set-PSReadLineKeyHandler -Chord "Ctrl+Backspace" -Function DeleteWord
if (Get-Command 'Set-PsFzfOption' -ErrorAction 'SilentlyContinue') {
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+t' -PSReadlineChordReverseHistory 'Ctrl+r'
}
# --- Hide sensitive information from history
Set-PSReadLineOption -AddToHistoryHandler {
param(
[string]$line
)
$sensitive = "password|asplaintext|token|secret"
return ($line -notmatch $sensitive)
}
# -----------------------------------------------------------------------------
# - ALIASES -
# -----------------------------------------------------------------------------
function ListFilesAndFolders { param([string]$path = ".") Get-ChildItem -Path $path }
Set-Alias -Name ll -Value ListFilesAndFolders
function ListAllFilesAndFolders { param([string]$path = ".") Get-ChildItem -Path $path -Force }
Set-Alias -Name la -Value ListAllFilesAndFolders
function ListAllFilesAndFoldersSorted { param([string]$path = ".") Get-ChildItem -Path $path -Force | Sort-Object LastWriteTime }
Set-Alias -Name lss -Value ListAllFilesAndFoldersSorted
function GitCommitAlias { git commit -m $args[0] }
Set-Alias -Name gcmm -Value GitCommitAlias
function GitStatusAll { git status -uall }
Set-Alias -Name gsa -Value GitStatusAll
function GitCommitPatch { git commit -p }
Set-Alias -Name gcp -Value GitCommitPatch
function GitAddPatch { git add -p $args }
Set-Alias -Name gap -Value GitAddPatch
Set-Alias -Name vi -Value vim
|