7a0e062fddf37d4aea2daf5f9d359f1b0619f131
Home.md
... | ... | @@ -2,10 +2,10 @@ |
2 | 2 | |
3 | 3 | ## tech |
4 | 4 | ### everyday tools |
5 | -* [vim](/edt/vim) |
|
6 | -* [git](/edt/git) |
|
7 | -* [tmux](/edt/tmux) |
|
8 | -* [more](/tech-index#everyday-tools)... |
|
5 | +* [vim](/software/vim) |
|
6 | +* [git](/software/git) |
|
7 | +* [tmux](/software/tmux) |
|
8 | +* [more...](/tech-index#everyday-tools) |
|
9 | 9 | |
10 | 10 | ### operating systems |
11 | 11 | * [linux](linux/index) |
... | ... | @@ -14,7 +14,7 @@ |
14 | 14 | |
15 | 15 | ### programming |
16 | 16 | * [shell_scripts](/programming/shell_scripts) |
17 | -* [more](/tech-index#programming)... |
|
17 | +* [more...](/tech-index#programming) |
|
18 | 18 | |
19 | 19 | ### other |
20 | 20 | * [software](/tech-index#software) |
edt/git.md
... | ... | @@ -1,105 +0,0 @@ |
1 | -# git |
|
2 | - |
|
3 | -undo merge that hasn't been pushed |
|
4 | -```zsh |
|
5 | -git reset --merge HEAD~1 |
|
6 | -``` |
|
7 | - |
|
8 | -roll back hard |
|
9 | -``` |
|
10 | -git reset --hard <commit/tag> |
|
11 | -``` |
|
12 | - |
|
13 | -force push of a previous commit |
|
14 | -``` |
|
15 | -git push -f origin <commit_id>:<branch> |
|
16 | -``` |
|
17 | - |
|
18 | -delete remote branch |
|
19 | -``` |
|
20 | -git push --delete origin <branch> |
|
21 | -``` |
|
22 | - |
|
23 | -reset local branch after a forced-update (above) |
|
24 | -``` |
|
25 | -git fetch |
|
26 | -git reset origin/<branch> --hard |
|
27 | -``` |
|
28 | - |
|
29 | -renaming branch and updating remote |
|
30 | -``` |
|
31 | -git branch -m old-name new-name |
|
32 | -git push origin --set-upstream new-name |
|
33 | -git push origin :old-name |
|
34 | -``` |
|
35 | - |
|
36 | -set username for [single repo][] |
|
37 | -``` |
|
38 | -git config user.username 'name' |
|
39 | -``` |
|
40 | - |
|
41 | -set signing key for local repo |
|
42 | -``` |
|
43 | -git config user.signingkey <id> |
|
44 | -``` |
|
45 | - |
|
46 | -[signing][] commits |
|
47 | -``` |
|
48 | -git commit -S -m 'msg' |
|
49 | -``` |
|
50 | - |
|
51 | -compare diff between two commits |
|
52 | -``` |
|
53 | -git diff <commit>...<commit> |
|
54 | -``` |
|
55 | - |
|
56 | -stash |
|
57 | -``` |
|
58 | -git stash |
|
59 | -git stash show |
|
60 | -``` |
|
61 | - |
|
62 | -unstash |
|
63 | -``` |
|
64 | -git stash pop |
|
65 | -``` |
|
66 | - |
|
67 | -add remote origin |
|
68 | -``` |
|
69 | -git remote add origin git@gitserver/path/to/repo |
|
70 | -``` |
|
71 | - |
|
72 | -add multiple push repos |
|
73 | -``` |
|
74 | -git remote set-url --add --push origin git@gitserver/original/repo |
|
75 | -git remote set-url --add --push origin https://gitserver/another/repo |
|
76 | -``` |
|
77 | - |
|
78 | -archive branch |
|
79 | -``` |
|
80 | -git archive --format zip --outpu /path/to/output.zip <branch> |
|
81 | -``` |
|
82 | - |
|
83 | -## using `hub` |
|
84 | -### pull requests |
|
85 | -``` |
|
86 | -hub pr list |
|
87 | -hub pr checkout <num> |
|
88 | -``` |
|
89 | - |
|
90 | -## helpful links |
|
91 | - |
|
92 | -[making a pull request][] |
|
93 | - |
|
94 | -[branching and rebasing][] |
|
95 | - |
|
96 | -[branching model][] |
|
97 | - |
|
98 | -[merging and rebasing][] |
|
99 | - |
|
100 | -[making a pull request]: https://www.atlassian.com/git/tutorials/making-a-pull-request |
|
101 | -[branching and rebasing]: https://git-scm.com/book/en/v2/Git-Branching-Rebasing |
|
102 | -[branching model]: https://nvie.com/posts/a-successful-git-branching-model/ |
|
103 | -[single repo]: https://help.github.com/articles/setting-your-username-in-git/ |
|
104 | -[merging and rebasing]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing |
|
105 | -[signing]: https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work |
edt/irc.md
... | ... | @@ -1,49 +0,0 @@ |
1 | -# irc |
|
2 | - |
|
3 | -[mode list][] |
|
4 | - |
|
5 | -## freenode |
|
6 | -use the following to search channels |
|
7 | -``` |
|
8 | -/msg alis LIST *searchterm* |
|
9 | -``` |
|
10 | - |
|
11 | -## irc.highway.net #ebooks |
|
12 | -``` |
|
13 | -@search Author/Title |
|
14 | -/dcc get Search |
|
15 | -``` |
|
16 | - |
|
17 | -locate correct file |
|
18 | -``` |
|
19 | -!user filename |
|
20 | -/dcc get username |
|
21 | -``` |
|
22 | - |
|
23 | -## ssl port |
|
24 | -``` |
|
25 | -/connect -tls <irc_server> <port> |
|
26 | -``` |
|
27 | - |
|
28 | -## irc.c |
|
29 | -* `j <chan>` - join channel |
|
30 | -* `l <chan>` - leave channel |
|
31 | -* `m <user>` - private message |
|
32 | -* `ctrl-n` - next window |
|
33 | -* `ctrl-p` - previous window |
|
34 | -* `r <cmd>` - send raw |
|
35 | - * `r names` |
|
36 | - * `r whois` |
|
37 | - |
|
38 | -### testing |
|
39 | -* miniircd (lxc container) |
|
40 | - * get ip (10.0.3.133) |
|
41 | -* ircc (lxc container) |
|
42 | - * `./irc -n guest -u guest -s 10.0.3.133` |
|
43 | - |
|
44 | -## irssi |
|
45 | -### colour table |
|
46 | - |
|
47 | -use 256 color tables 1-7 preceded with `x` (bg) or `X` foreground, and then a,b,c etc. i.e `%x7g` |
|
48 | - |
|
49 | -[mode list]: https://madirc.net/irc-channelmodes.html |
edt/mail.md
... | ... | @@ -1,15 +0,0 @@ |
1 | -``` |
|
2 | -mail |
|
3 | -``` |
|
4 | -* `+` open next mail |
|
5 | -* `-` open prev mail |
|
6 | -* `d` delete mail |
|
7 | - * `d 6 9` delete mail 6 & 9 |
|
8 | - * `d 4-40` delete mails 4 to 40 |
|
9 | - * `d*` delete all |
|
10 | -* `reply` |
|
11 | -* `h` print messages |
|
12 | - |
|
13 | -use csv list in ~/.forward to forward mails to external addr. or check /etc/aliases ([stackexchange][]) |
|
14 | - |
|
15 | -[stackexchange]: https://unix.stackexchange.com/a/26670 |
edt/mutt.md
... | ... | @@ -1,47 +0,0 @@ |
1 | -# mutt |
|
2 | - |
|
3 | -search, limit and tagging [patterns][] |
|
4 | -* limit new (unread) messages using `~U` |
|
5 | -* limit messages either to: or cc: using ~C (useful for mailing lists) |
|
6 | - |
|
7 | -## index format |
|
8 | -default index format is (taken from [muttrc man][]) |
|
9 | -``` |
|
10 | -"%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s" |
|
11 | -``` |
|
12 | - |
|
13 | -current format is |
|
14 | -``` |
|
15 | -"%Z %-30.30L %M %s" |
|
16 | -``` |
|
17 | -_message status, sender, hidden msgs (in thread), subject_ |
|
18 | - |
|
19 | -## threads |
|
20 | -collapse threads using `Esc-v` |
|
21 | - |
|
22 | -[rebind collapse-thread][] to '-' |
|
23 | -``` |
|
24 | -bind index - collapse-thread |
|
25 | -``` |
|
26 | - |
|
27 | -configure threads to be collapsed when mailbox opened ([thread_ref][]) |
|
28 | -``` |
|
29 | -folder-hook . "push <collapse-all>\n" |
|
30 | -``` |
|
31 | - |
|
32 | -## attachments |
|
33 | -download directory macro ([macro source][]) |
|
34 | -``` |
|
35 | -macro attach W "<save-entry><bol>~/tmp/<eol>" |
|
36 | -``` |
|
37 | - |
|
38 | -pipe pdf |
|
39 | -``` |
|
40 | -| zathura - |
|
41 | -``` |
|
42 | - |
|
43 | -[patterns]: http://www.mutt.org/doc/manual/#patterns |
|
44 | -[muttrc man]: https://linux.die.net/man/5/muttrc |
|
45 | -[rebind collapse-thread]: https://heipei.net/2009/09/10/mutt-threading-like-a-pro/ |
|
46 | -[thread_ref]: http://compgroups.net/comp.mail.mutt/collapsing-threads-by-default/2550437 |
|
47 | -[macro source]: https://superuser.com/questions/695541/where-does-mutt-save-attachment |
edt/tmux.md
... | ... | @@ -1,12 +0,0 @@ |
1 | -# tmux |
|
2 | - |
|
3 | -all commands used with `prefix` |
|
4 | - |
|
5 | -| command | description | |
|
6 | -| --- | --- | |
|
7 | -| `s` | switch tmux sessions | |
|
8 | -| `r` | reload config | |
|
9 | -| `$` | rename session | |
|
10 | - |
|
11 | - |
|
12 | - |
edt/vim.md
... | ... | @@ -1,227 +0,0 @@ |
1 | -# vim |
|
2 | - |
|
3 | -## copy contents to/from files |
|
4 | -to copy the contents into a file |
|
5 | - ``` |
|
6 | - :r <filename> |
|
7 | - ``` |
|
8 | -or |
|
9 | - ``` |
|
10 | - :"qY # yank out of first file |
|
11 | - :"qP # put into second file |
|
12 | - ``` |
|
13 | -or read range of lines |
|
14 | - ``` |
|
15 | - :r! sed -n <n>,<m>p /path/to/file.md |
|
16 | - ``` |
|
17 | - |
|
18 | -to copy the contents to a new file |
|
19 | - ``` |
|
20 | - :<n>,<m> w <filename> |
|
21 | - ``` |
|
22 | - where `<n>` and `<m>` are numbers or symbols that designate range of lines |
|
23 | - |
|
24 | - |
|
25 | -## text wrap |
|
26 | -(wrap to column) |
|
27 | -wrap current line |
|
28 | -``` |
|
29 | -gqq |
|
30 | -``` |
|
31 | - |
|
32 | -wrap entire file |
|
33 | -``` |
|
34 | -gqG |
|
35 | -``` |
|
36 | - |
|
37 | -wrap paragraph using visual selection |
|
38 | -``` |
|
39 | -V}gq |
|
40 | -``` |
|
41 | - |
|
42 | -also use visual or visual block with `gq` |
|
43 | - |
|
44 | -## spell |
|
45 | -[using_spellcheck][] |
|
46 | -check spelling |
|
47 | -``` |
|
48 | -Spell |
|
49 | -``` |
|
50 | - |
|
51 | -move to word |
|
52 | -``` |
|
53 | -]s [s |
|
54 | -``` |
|
55 | - |
|
56 | -and see results |
|
57 | -``` |
|
58 | -z= |
|
59 | -``` |
|
60 | - |
|
61 | -turn off highlighting |
|
62 | -``` |
|
63 | -set nospell |
|
64 | -``` |
|
65 | - |
|
66 | -## buffers |
|
67 | -- buffer [faq][] |
|
68 | -- using [vanilla vim][] |
|
69 | -- [buffers over tabs][] |
|
70 | -- open buffer |
|
71 | - ``` |
|
72 | - :e <filename> |
|
73 | - :new |
|
74 | - ``` |
|
75 | -- view buffers |
|
76 | - ``` |
|
77 | - :ls |
|
78 | - ``` |
|
79 | -- switch buffers |
|
80 | - ``` |
|
81 | - :buffer <num> |
|
82 | - ``` |
|
83 | -- unload buffer |
|
84 | - ``` |
|
85 | - :bd <num> |
|
86 | - ``` |
|
87 | - |
|
88 | -## incrementing numbers |
|
89 | -post on [reddit][] |
|
90 | - |
|
91 | -select several lines containing '0' and type `g<C-a>` |
|
92 | - |
|
93 | -## split |
|
94 | -- movement |
|
95 | - ``` |
|
96 | - <Ctrl>-w [h,j,k,l] |
|
97 | - <Ctrl>-w w |
|
98 | - ``` |
|
99 | -- rotate |
|
100 | - ``` |
|
101 | - <Ctrl>-w r |
|
102 | - ``` |
|
103 | -- orientate |
|
104 | - ``` |
|
105 | - <Ctrl>-w J |
|
106 | - <Ctrl>-w L |
|
107 | - ``` |
|
108 | -- sizing |
|
109 | - ``` |
|
110 | - <Ctrl>-w - # decrease height by 1 line |
|
111 | - <Ctrl>-w + # increase height by 1 line |
|
112 | - <Ctrl>-w < # change width by 1 line to the left |
|
113 | - <Ctrl>-w > # change width by 1 line to the right |
|
114 | - <Ctrl>-w 10 - # decrease height by 10 lines, etc... |
|
115 | - ``` |
|
116 | - |
|
117 | -## diff |
|
118 | -``` |
|
119 | -:windo diffthis |
|
120 | -:windo diffoff |
|
121 | -``` |
|
122 | - |
|
123 | -## list recent doc |
|
124 | -``` |
|
125 | -:ol[dfiles] |
|
126 | -``` |
|
127 | - |
|
128 | -## replace |
|
129 | -- change inner word |
|
130 | - ``` |
|
131 | - ciw |
|
132 | - ``` |
|
133 | - |
|
134 | -## delete |
|
135 | -- until but not <char> |
|
136 | - ``` |
|
137 | - dt <char> |
|
138 | - ``` |
|
139 | -- until and <char> |
|
140 | - ``` |
|
141 | - df <char> |
|
142 | - ``` |
|
143 | - |
|
144 | -## visual |
|
145 | -- visual select to end of line excluding whitespace |
|
146 | -``` |
|
147 | -vg_ |
|
148 | -``` |
|
149 | - |
|
150 | -## using the shell |
|
151 | -[vim and the shell][] |
|
152 | - |
|
153 | -- run current buffer as script |
|
154 | -```bash |
|
155 | -:!./% |
|
156 | -``` |
|
157 | - |
|
158 | -- in script, highlight line and switch to command mode by pressing `:` |
|
159 | -```bash |
|
160 | -:'<,'>w !bash - |
|
161 | -``` |
|
162 | - |
|
163 | -```python |
|
164 | -:'<,'>w !python - |
|
165 | -``` |
|
166 | - |
|
167 | -## directory of current buffer |
|
168 | -open new file in dir of current buffer |
|
169 | -``` |
|
170 | -:e %:h/filename |
|
171 | -``` |
|
172 | - |
|
173 | -save file as new file in dir of current buffer |
|
174 | -``` |
|
175 | -:sav %:h/filename |
|
176 | -``` |
|
177 | - |
|
178 | -## substitute on multiple lines |
|
179 | -https://stackoverflow.com/a/19996145 |
|
180 | -``` |
|
181 | -:6,10s/<search_string>/<replace_string>/g | 14,18&& |
|
182 | -``` |
|
183 | - |
|
184 | -## reverse substitute |
|
185 | -* adds a tab to the beginning of all lines that don't start with `Pattern` |
|
186 | -``` |
|
187 | -:%v/^Pattern/s/^/\t/ |
|
188 | -``` |
|
189 | - |
|
190 | -## sort visual block |
|
191 | -https://vim.fandom.com/wiki/How_to_sort_using_visual_blocks |
|
192 | -``` |
|
193 | -:'<,'>sort /\ze\%V/ |
|
194 | -``` |
|
195 | - |
|
196 | -## move current line (scroll-cursor) |
|
197 | -`z<enter>` or `zt` - move to top of buffer |
|
198 | -`z.` or `zz` - move to centre of buffer |
|
199 | -`z-` or `zb` - move to bottom of buffer |
|
200 | - |
|
201 | -(zEnter, z., and z- puts the cursor in the first non blank column. zt, zz, and zb leaves the cursor in the current column) |
|
202 | - |
|
203 | -``` |
|
204 | -:help scroll-cursor |
|
205 | -``` |
|
206 | - |
|
207 | -## yanking into a register |
|
208 | -`"qp` paste the contents of the register to the current cursor position |
|
209 | -`i` enter insert mode at the begging of the pasted line |
|
210 | -`^` add the missing motion to return to the front of the line |
|
211 | -`<escape>` return to visual mode |
|
212 | -`"qyy` yank this new modified macro back into the q register |
|
213 | -`dd` delete the pasted register from the file your editing |
|
214 | - |
|
215 | -## editing the register visually |
|
216 | -`:let @q='` open the q register |
|
217 | -`<cntl-r><cntl-r>q` paste the contents of the q register into the buffer |
|
218 | -`^` add the missing motion to return to the front of the line |
|
219 | -`'` add a closing quote |
|
220 | -`<enter>` finish editing the macro |
|
221 | - |
|
222 | -[using_spellcheck]: https://www.linux.com/learn/using-spell-checking-vim |
|
223 | -[faq]: http://vim.wikia.com/wiki/Vim_buffer_FAQ |
|
224 | -[vanilla vim]: https://stackoverflow.com/questions/16082991/vim-switching-between-files-rapidly-using-vanilla-vim-no-plugins |
|
225 | -[buffers over tabs]: https://stackoverflow.com/questions/26708822/why-do-vim-experts-prefer-buffers-over-tabs |
|
226 | -[reddit]: https://www.reddit.com/r/vim/comments/a1lvb1/til_gca_for_creating_a_column_of_incrementing/ |
|
227 | -[vim and the shell]: https://vimways.org/2019/vim-and-the-shell/ |
edt/vimwiki.md
... | ... | @@ -1,31 +0,0 @@ |
1 | -# vimwiki |
|
2 | - |
|
3 | -## commands |
|
4 | -| command | description | |
|
5 | -| --- | --- | |
|
6 | -| `=` | increase header | |
|
7 | -| `-` | decrease header | |
|
8 | -| `C-space` | check todo box | |
|
9 | -| `glh` | step down list | |
|
10 | -| `gll` | step up list | |
|
11 | -| `glr` | refresh numbered list | |
|
12 | -| `\w\t` | day diary in new tab | |
|
13 | -| `\w\i` | on diary index generate new links | |
|
14 | -| `\wt` | open wiki index in tab (only after mapping `nmap <Leader>wt <Plug>VimwikiTabnewLink`) | |
|
15 | -| `\wi` | open diary index | |
|
16 | - |
|
17 | -## syntax highlighting |
|
18 | -```bash |
|
19 | -echo hello friend |
|
20 | -``` |
|
21 | - |
|
22 | -## convert to html |
|
23 | -pandoc -s -f markdown -t html -o uofu/azure_ad_requirements.html uofu/azure_ad_requirements.md && firefox uofu/azure_ad_requirements |
|
24 | -.html |
|
25 | - |
|
26 | -## anchors |
|
27 | - use [title] (#anchor#subanchor) |
|
28 | - i'm using :tags: under a #ref header to jump to links in page |
|
29 | - - switch to [pandoc markdown][] |
|
30 | - |
|
31 | -[pandoc markdown]: http://pandoc.org/MANUAL.html#pandocs-markdown |
software/git.md
... | ... | @@ -0,0 +1,105 @@ |
1 | +# git |
|
2 | + |
|
3 | +undo merge that hasn't been pushed |
|
4 | +```zsh |
|
5 | +git reset --merge HEAD~1 |
|
6 | +``` |
|
7 | + |
|
8 | +roll back hard |
|
9 | +``` |
|
10 | +git reset --hard <commit/tag> |
|
11 | +``` |
|
12 | + |
|
13 | +force push of a previous commit |
|
14 | +``` |
|
15 | +git push -f origin <commit_id>:<branch> |
|
16 | +``` |
|
17 | + |
|
18 | +delete remote branch |
|
19 | +``` |
|
20 | +git push --delete origin <branch> |
|
21 | +``` |
|
22 | + |
|
23 | +reset local branch after a forced-update (above) |
|
24 | +``` |
|
25 | +git fetch |
|
26 | +git reset origin/<branch> --hard |
|
27 | +``` |
|
28 | + |
|
29 | +renaming branch and updating remote |
|
30 | +``` |
|
31 | +git branch -m old-name new-name |
|
32 | +git push origin --set-upstream new-name |
|
33 | +git push origin :old-name |
|
34 | +``` |
|
35 | + |
|
36 | +set username for [single repo][] |
|
37 | +``` |
|
38 | +git config user.username 'name' |
|
39 | +``` |
|
40 | + |
|
41 | +set signing key for local repo |
|
42 | +``` |
|
43 | +git config user.signingkey <id> |
|
44 | +``` |
|
45 | + |
|
46 | +[signing][] commits |
|
47 | +``` |
|
48 | +git commit -S -m 'msg' |
|
49 | +``` |
|
50 | + |
|
51 | +compare diff between two commits |
|
52 | +``` |
|
53 | +git diff <commit>...<commit> |
|
54 | +``` |
|
55 | + |
|
56 | +stash |
|
57 | +``` |
|
58 | +git stash |
|
59 | +git stash show |
|
60 | +``` |
|
61 | + |
|
62 | +unstash |
|
63 | +``` |
|
64 | +git stash pop |
|
65 | +``` |
|
66 | + |
|
67 | +add remote origin |
|
68 | +``` |
|
69 | +git remote add origin git@gitserver/path/to/repo |
|
70 | +``` |
|
71 | + |
|
72 | +add multiple push repos |
|
73 | +``` |
|
74 | +git remote set-url --add --push origin git@gitserver/original/repo |
|
75 | +git remote set-url --add --push origin https://gitserver/another/repo |
|
76 | +``` |
|
77 | + |
|
78 | +archive branch |
|
79 | +``` |
|
80 | +git archive --format zip --outpu /path/to/output.zip <branch> |
|
81 | +``` |
|
82 | + |
|
83 | +## using `hub` |
|
84 | +### pull requests |
|
85 | +``` |
|
86 | +hub pr list |
|
87 | +hub pr checkout <num> |
|
88 | +``` |
|
89 | + |
|
90 | +## helpful links |
|
91 | + |
|
92 | +[making a pull request][] |
|
93 | + |
|
94 | +[branching and rebasing][] |
|
95 | + |
|
96 | +[branching model][] |
|
97 | + |
|
98 | +[merging and rebasing][] |
|
99 | + |
|
100 | +[making a pull request]: https://www.atlassian.com/git/tutorials/making-a-pull-request |
|
101 | +[branching and rebasing]: https://git-scm.com/book/en/v2/Git-Branching-Rebasing |
|
102 | +[branching model]: https://nvie.com/posts/a-successful-git-branching-model/ |
|
103 | +[single repo]: https://help.github.com/articles/setting-your-username-in-git/ |
|
104 | +[merging and rebasing]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing |
|
105 | +[signing]: https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work |
software/irc.md
... | ... | @@ -0,0 +1,49 @@ |
1 | +# irc |
|
2 | + |
|
3 | +[mode list][] |
|
4 | + |
|
5 | +## freenode |
|
6 | +use the following to search channels |
|
7 | +``` |
|
8 | +/msg alis LIST *searchterm* |
|
9 | +``` |
|
10 | + |
|
11 | +## irc.highway.net #ebooks |
|
12 | +``` |
|
13 | +@search Author/Title |
|
14 | +/dcc get Search |
|
15 | +``` |
|
16 | + |
|
17 | +locate correct file |
|
18 | +``` |
|
19 | +!user filename |
|
20 | +/dcc get username |
|
21 | +``` |
|
22 | + |
|
23 | +## ssl port |
|
24 | +``` |
|
25 | +/connect -tls <irc_server> <port> |
|
26 | +``` |
|
27 | + |
|
28 | +## irc.c |
|
29 | +* `j <chan>` - join channel |
|
30 | +* `l <chan>` - leave channel |
|
31 | +* `m <user>` - private message |
|
32 | +* `ctrl-n` - next window |
|
33 | +* `ctrl-p` - previous window |
|
34 | +* `r <cmd>` - send raw |
|
35 | + * `r names` |
|
36 | + * `r whois` |
|
37 | + |
|
38 | +### testing |
|
39 | +* miniircd (lxc container) |
|
40 | + * get ip (10.0.3.133) |
|
41 | +* ircc (lxc container) |
|
42 | + * `./irc -n guest -u guest -s 10.0.3.133` |
|
43 | + |
|
44 | +## irssi |
|
45 | +### colour table |
|
46 | + |
|
47 | +use 256 color tables 1-7 preceded with `x` (bg) or `X` foreground, and then a,b,c etc. i.e `%x7g` |
|
48 | + |
|
49 | +[mode list]: https://madirc.net/irc-channelmodes.html |
software/mail.md
... | ... | @@ -0,0 +1,15 @@ |
1 | +``` |
|
2 | +mail |
|
3 | +``` |
|
4 | +* `+` open next mail |
|
5 | +* `-` open prev mail |
|
6 | +* `d` delete mail |
|
7 | + * `d 6 9` delete mail 6 & 9 |
|
8 | + * `d 4-40` delete mails 4 to 40 |
|
9 | + * `d*` delete all |
|
10 | +* `reply` |
|
11 | +* `h` print messages |
|
12 | + |
|
13 | +use csv list in ~/.forward to forward mails to external addr. or check /etc/aliases ([stackexchange][]) |
|
14 | + |
|
15 | +[stackexchange]: https://unix.stackexchange.com/a/26670 |
software/mutt.md
... | ... | @@ -0,0 +1,47 @@ |
1 | +# mutt |
|
2 | + |
|
3 | +search, limit and tagging [patterns][] |
|
4 | +* limit new (unread) messages using `~U` |
|
5 | +* limit messages either to: or cc: using ~C (useful for mailing lists) |
|
6 | + |
|
7 | +## index format |
|
8 | +default index format is (taken from [muttrc man][]) |
|
9 | +``` |
|
10 | +"%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s" |
|
11 | +``` |
|
12 | + |
|
13 | +current format is |
|
14 | +``` |
|
15 | +"%Z %-30.30L %M %s" |
|
16 | +``` |
|
17 | +_message status, sender, hidden msgs (in thread), subject_ |
|
18 | + |
|
19 | +## threads |
|
20 | +collapse threads using `Esc-v` |
|
21 | + |
|
22 | +[rebind collapse-thread][] to '-' |
|
23 | +``` |
|
24 | +bind index - collapse-thread |
|
25 | +``` |
|
26 | + |
|
27 | +configure threads to be collapsed when mailbox opened ([thread_ref][]) |
|
28 | +``` |
|
29 | +folder-hook . "push <collapse-all>\n" |
|
30 | +``` |
|
31 | + |
|
32 | +## attachments |
|
33 | +download directory macro ([macro source][]) |
|
34 | +``` |
|
35 | +macro attach W "<save-entry><bol>~/tmp/<eol>" |
|
36 | +``` |
|
37 | + |
|
38 | +pipe pdf |
|
39 | +``` |
|
40 | +| zathura - |
|
41 | +``` |
|
42 | + |
|
43 | +[patterns]: http://www.mutt.org/doc/manual/#patterns |
|
44 | +[muttrc man]: https://linux.die.net/man/5/muttrc |
|
45 | +[rebind collapse-thread]: https://heipei.net/2009/09/10/mutt-threading-like-a-pro/ |
|
46 | +[thread_ref]: http://compgroups.net/comp.mail.mutt/collapsing-threads-by-default/2550437 |
|
47 | +[macro source]: https://superuser.com/questions/695541/where-does-mutt-save-attachment |
software/tmux.md
... | ... | @@ -0,0 +1,12 @@ |
1 | +# tmux |
|
2 | + |
|
3 | +all commands used with `prefix` |
|
4 | + |
|
5 | +| command | description | |
|
6 | +| --- | --- | |
|
7 | +| `s` | switch tmux sessions | |
|
8 | +| `r` | reload config | |
|
9 | +| `$` | rename session | |
|
10 | + |
|
11 | + |
|
12 | + |
software/vim.md
... | ... | @@ -0,0 +1,227 @@ |
1 | +# vim |
|
2 | + |
|
3 | +## copy contents to/from files |
|
4 | +to copy the contents into a file |
|
5 | + ``` |
|
6 | + :r <filename> |
|
7 | + ``` |
|
8 | +or |
|
9 | + ``` |
|
10 | + :"qY # yank out of first file |
|
11 | + :"qP # put into second file |
|
12 | + ``` |
|
13 | +or read range of lines |
|
14 | + ``` |
|
15 | + :r! sed -n <n>,<m>p /path/to/file.md |
|
16 | + ``` |
|
17 | + |
|
18 | +to copy the contents to a new file |
|
19 | + ``` |
|
20 | + :<n>,<m> w <filename> |
|
21 | + ``` |
|
22 | + where `<n>` and `<m>` are numbers or symbols that designate range of lines |
|
23 | + |
|
24 | + |
|
25 | +## text wrap |
|
26 | +(wrap to column) |
|
27 | +wrap current line |
|
28 | +``` |
|
29 | +gqq |
|
30 | +``` |
|
31 | + |
|
32 | +wrap entire file |
|
33 | +``` |
|
34 | +gqG |
|
35 | +``` |
|
36 | + |
|
37 | +wrap paragraph using visual selection |
|
38 | +``` |
|
39 | +V}gq |
|
40 | +``` |
|
41 | + |
|
42 | +also use visual or visual block with `gq` |
|
43 | + |
|
44 | +## spell |
|
45 | +[using_spellcheck][] |
|
46 | +check spelling |
|
47 | +``` |
|
48 | +Spell |
|
49 | +``` |
|
50 | + |
|
51 | +move to word |
|
52 | +``` |
|
53 | +]s [s |
|
54 | +``` |
|
55 | + |
|
56 | +and see results |
|
57 | +``` |
|
58 | +z= |
|
59 | +``` |
|
60 | + |
|
61 | +turn off highlighting |
|
62 | +``` |
|
63 | +set nospell |
|
64 | +``` |
|
65 | + |
|
66 | +## buffers |
|
67 | +- buffer [faq][] |
|
68 | +- using [vanilla vim][] |
|
69 | +- [buffers over tabs][] |
|
70 | +- open buffer |
|
71 | + ``` |
|
72 | + :e <filename> |
|
73 | + :new |
|
74 | + ``` |
|
75 | +- view buffers |
|
76 | + ``` |
|
77 | + :ls |
|
78 | + ``` |
|
79 | +- switch buffers |
|
80 | + ``` |
|
81 | + :buffer <num> |
|
82 | + ``` |
|
83 | +- unload buffer |
|
84 | + ``` |
|
85 | + :bd <num> |
|
86 | + ``` |
|
87 | + |
|
88 | +## incrementing numbers |
|
89 | +post on [reddit][] |
|
90 | + |
|
91 | +select several lines containing '0' and type `g<C-a>` |
|
92 | + |
|
93 | +## split |
|
94 | +- movement |
|
95 | + ``` |
|
96 | + <Ctrl>-w [h,j,k,l] |
|
97 | + <Ctrl>-w w |
|
98 | + ``` |
|
99 | +- rotate |
|
100 | + ``` |
|
101 | + <Ctrl>-w r |
|
102 | + ``` |
|
103 | +- orientate |
|
104 | + ``` |
|
105 | + <Ctrl>-w J |
|
106 | + <Ctrl>-w L |
|
107 | + ``` |
|
108 | +- sizing |
|
109 | + ``` |
|
110 | + <Ctrl>-w - # decrease height by 1 line |
|
111 | + <Ctrl>-w + # increase height by 1 line |
|
112 | + <Ctrl>-w < # change width by 1 line to the left |
|
113 | + <Ctrl>-w > # change width by 1 line to the right |
|
114 | + <Ctrl>-w 10 - # decrease height by 10 lines, etc... |
|
115 | + ``` |
|
116 | + |
|
117 | +## diff |
|
118 | +``` |
|
119 | +:windo diffthis |
|
120 | +:windo diffoff |
|
121 | +``` |
|
122 | + |
|
123 | +## list recent doc |
|
124 | +``` |
|
125 | +:ol[dfiles] |
|
126 | +``` |
|
127 | + |
|
128 | +## replace |
|
129 | +- change inner word |
|
130 | + ``` |
|
131 | + ciw |
|
132 | + ``` |
|
133 | + |
|
134 | +## delete |
|
135 | +- until but not <char> |
|
136 | + ``` |
|
137 | + dt <char> |
|
138 | + ``` |
|
139 | +- until and <char> |
|
140 | + ``` |
|
141 | + df <char> |
|
142 | + ``` |
|
143 | + |
|
144 | +## visual |
|
145 | +- visual select to end of line excluding whitespace |
|
146 | +``` |
|
147 | +vg_ |
|
148 | +``` |
|
149 | + |
|
150 | +## using the shell |
|
151 | +[vim and the shell][] |
|
152 | + |
|
153 | +- run current buffer as script |
|
154 | +```bash |
|
155 | +:!./% |
|
156 | +``` |
|
157 | + |
|
158 | +- in script, highlight line and switch to command mode by pressing `:` |
|
159 | +```bash |
|
160 | +:'<,'>w !bash - |
|
161 | +``` |
|
162 | + |
|
163 | +```python |
|
164 | +:'<,'>w !python - |
|
165 | +``` |
|
166 | + |
|
167 | +## directory of current buffer |
|
168 | +open new file in dir of current buffer |
|
169 | +``` |
|
170 | +:e %:h/filename |
|
171 | +``` |
|
172 | + |
|
173 | +save file as new file in dir of current buffer |
|
174 | +``` |
|
175 | +:sav %:h/filename |
|
176 | +``` |
|
177 | + |
|
178 | +## substitute on multiple lines |
|
179 | +https://stackoverflow.com/a/19996145 |
|
180 | +``` |
|
181 | +:6,10s/<search_string>/<replace_string>/g | 14,18&& |
|
182 | +``` |
|
183 | + |
|
184 | +## reverse substitute |
|
185 | +* adds a tab to the beginning of all lines that don't start with `Pattern` |
|
186 | +``` |
|
187 | +:%v/^Pattern/s/^/\t/ |
|
188 | +``` |
|
189 | + |
|
190 | +## sort visual block |
|
191 | +https://vim.fandom.com/wiki/How_to_sort_using_visual_blocks |
|
192 | +``` |
|
193 | +:'<,'>sort /\ze\%V/ |
|
194 | +``` |
|
195 | + |
|
196 | +## move current line (scroll-cursor) |
|
197 | +`z<enter>` or `zt` - move to top of buffer |
|
198 | +`z.` or `zz` - move to centre of buffer |
|
199 | +`z-` or `zb` - move to bottom of buffer |
|
200 | + |
|
201 | +(zEnter, z., and z- puts the cursor in the first non blank column. zt, zz, and zb leaves the cursor in the current column) |
|
202 | + |
|
203 | +``` |
|
204 | +:help scroll-cursor |
|
205 | +``` |
|
206 | + |
|
207 | +## yanking into a register |
|
208 | +`"qp` paste the contents of the register to the current cursor position |
|
209 | +`i` enter insert mode at the begging of the pasted line |
|
210 | +`^` add the missing motion to return to the front of the line |
|
211 | +`<escape>` return to visual mode |
|
212 | +`"qyy` yank this new modified macro back into the q register |
|
213 | +`dd` delete the pasted register from the file your editing |
|
214 | + |
|
215 | +## editing the register visually |
|
216 | +`:let @q='` open the q register |
|
217 | +`<cntl-r><cntl-r>q` paste the contents of the q register into the buffer |
|
218 | +`^` add the missing motion to return to the front of the line |
|
219 | +`'` add a closing quote |
|
220 | +`<enter>` finish editing the macro |
|
221 | + |
|
222 | +[using_spellcheck]: https://www.linux.com/learn/using-spell-checking-vim |
|
223 | +[faq]: http://vim.wikia.com/wiki/Vim_buffer_FAQ |
|
224 | +[vanilla vim]: https://stackoverflow.com/questions/16082991/vim-switching-between-files-rapidly-using-vanilla-vim-no-plugins |
|
225 | +[buffers over tabs]: https://stackoverflow.com/questions/26708822/why-do-vim-experts-prefer-buffers-over-tabs |
|
226 | +[reddit]: https://www.reddit.com/r/vim/comments/a1lvb1/til_gca_for_creating_a_column_of_incrementing/ |
|
227 | +[vim and the shell]: https://vimways.org/2019/vim-and-the-shell/ |
software/vimwiki.md
... | ... | @@ -0,0 +1,31 @@ |
1 | +# vimwiki |
|
2 | + |
|
3 | +## commands |
|
4 | +| command | description | |
|
5 | +| --- | --- | |
|
6 | +| `=` | increase header | |
|
7 | +| `-` | decrease header | |
|
8 | +| `C-space` | check todo box | |
|
9 | +| `glh` | step down list | |
|
10 | +| `gll` | step up list | |
|
11 | +| `glr` | refresh numbered list | |
|
12 | +| `\w\t` | day diary in new tab | |
|
13 | +| `\w\i` | on diary index generate new links | |
|
14 | +| `\wt` | open wiki index in tab (only after mapping `nmap <Leader>wt <Plug>VimwikiTabnewLink`) | |
|
15 | +| `\wi` | open diary index | |
|
16 | + |
|
17 | +## syntax highlighting |
|
18 | +```bash |
|
19 | +echo hello friend |
|
20 | +``` |
|
21 | + |
|
22 | +## convert to html |
|
23 | +pandoc -s -f markdown -t html -o uofu/azure_ad_requirements.html uofu/azure_ad_requirements.md && firefox uofu/azure_ad_requirements |
|
24 | +.html |
|
25 | + |
|
26 | +## anchors |
|
27 | + use [title] (#anchor#subanchor) |
|
28 | + i'm using :tags: under a #ref header to jump to links in page |
|
29 | + - switch to [pandoc markdown][] |
|
30 | + |
|
31 | +[pandoc markdown]: http://pandoc.org/MANUAL.html#pandocs-markdown |
tech-index.md
... | ... | @@ -1,12 +1,12 @@ |
1 | 1 | # tech |
2 | 2 | ## everyday tools |
3 | -* [vim](/edt/vim) |
|
4 | -* [git](/edt/git) |
|
5 | -* [tmux](/edt/tmux) |
|
6 | -* [mutt](/edt/mutt) |
|
7 | -* [vimwiki](/edt/vimwiki) |
|
8 | -* [irc](/edt/irc) |
|
9 | -* [mail](/edt/mail) |
|
3 | +* [vim](/software/vim) |
|
4 | +* [git](/software/git) |
|
5 | +* [tmux](/software/tmux) |
|
6 | +* [mutt](/software/mutt) |
|
7 | +* [vimwiki](/software/vimwiki) |
|
8 | +* [irc](/software/irc) |
|
9 | +* [mail](/software/mail) |
|
10 | 10 | |
11 | 11 | ## operating systems |
12 | 12 | * [linux](/linux/index) |