Skip to content

Instantly share code, notes, and snippets.

@jindraj
Last active August 29, 2015 14:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jindraj/11267393 to your computer and use it in GitHub Desktop.
Save jindraj/11267393 to your computer and use it in GitHub Desktop.
{{{ Zkratky
C control
M meta (Alt, option)
E Escape (meta)
E / = M-/ (escape a meta jsou zamenitelne - rozdil je v tom ze meta se musi drzet
}}}
{{{ Troubleshooting
Kdyz vam neco nebude fungovat muze to byt starsi verzi interpretu nebo readline
System wide konfigurace od package maintaineru
Polykání zkratek Konsole, gnome-terminal nebo windowmanagerem
}}}
{{{ Doplnovani bash-completion
* doplnovani k ~200+ balikum
* sikovny (vetsinou pomaha dobre)
* nejde doplnovat vse vsude, cesta nebo username
* git, aliasy completion?
* ssh hash known_hosts nastavit na false aby to uměl číst
* fish - shell co umi doplnovat fakt hodne (naseptava prepinace s napovedou atd)
* Tomas Hegenbart vyzkoušel a už to používá všude kde může :)
}}}
{{{ readline
Podpora shelly/interprety s readline (nektere maji horsi, nektere lepsi)
* MySQL, PostgreSQL, Redis, MongoDB, sqlite
* ruzné clička jako ftp
* bash, python, php
* nektere ncurses hračky
Modes
* emacs
* vi
V emacs modu funguji nasledujici zkratky (ve vim modu se to muze chovat jinak
{{{Pohyb (obecně Ctrl = znaky nebo celá řádka, Meta = slova)
C-f pohyb o znak dopredu
C-b pohyb o znak zpet
M-f pohyb o slovo dopredu
M-b pohub o slovo zpet
C-a skok na zacatek radky
C-e skok na konec radky
C-xC-x skok mezi kurzorem a koncem (set-mark (C-@, M-<space>) )
C-] najit znak a skocit vpred na pozici
M-C-] najit znak a skocit zpet na pozici
}}}
{{{Upravy (obecně Ctrl = znaky, Meta = Slova)
C-t prohodi znak pod kurzorem s predchazejicim
M-t prohodi slovo pod kurzorem s predchazejicim
C-_ undo. Popr. C-xC-u
M-r vrátí změny na řádce (vhodné při úpravě příkazu z historie)
M-u uppercase slova od pozice kurzoru
M-l downcase slova od pozice kurzoru
M-c kapitalizuje slovo od pozice kurzoru
}}}
{{{Kill & Yank
killing
C-k kill od kurzoru na konec radky
C-u kill od kurzoru na zacatek radky
C-w kill slova od kurzoru zpet
M-d kill slova od kurzoru vpred
C-xC-w kill casti filenamu (viz nize)
yanking
C-y yank posledního itemu z killringu
M-y rotuje v histirii killringu (C-y M-y M-y M-y)
}}}
{{{Naseptavani a doplnovani (obecně Ctrl našeptává, Meta doplňuje)
C-x! naseptava commandy
M-! doplnuje commandy
C-x / naseptava jmena souboru
M-/ doplnuje jmena souboru
C-x @ naseptava jmena hostu
M-@ doplnuje jmena hostu (/etc/hosts)
C-x ~ naseptava usery
M-~ doplnuje usery
M-= našeptává vse. popr M-?
M-, doplňuje vse.
M znak doplnuje
C-x znak naseptava
case sensitivity, -_ insensitivity (completion-ignore-case yes/no)
}}}
{{{Historie
historii se vyhneme, to by bylo na extra prednasku :)
per-application history funguje stejne jako v bashi C-r, C-n, C-p, C-o, Metasračky M-< M-> M-. atd
Mé oblíbené:
* C-p listování v historii zpět
* C-n listování v historii vpřed
* C-j
}}}
{{{Makra
C-( zacne nahravani makra
C-) ukonci nahravani makra
C-x e spusti makro (M-123 C-e : spusti makro 123x)
}}}
{{{Ostatni
C-xC-e open current command line in $EDITOR and execute after closing (ve vi modu "M-v")
C-l vycisti obrazovku - takovej clrscr :))
M-# prefixuje řádku komentářem a odentruje
C-xC-r reload ~/.inputrc
}}}
{{{~/.inputrc
skip-completed-text (readline-6.1)
doplnovani s přepisem: "ssh hostname.example.com" vs "ssh hostname.example.com.com" (pokud doplnuju tabem pred .com)
nikdy nenasralo? neverim :)
show-mode-in-prompt (>=readline-6.3)
zobrazi znak aktualiniho readline modu jako prefix PS1:
@ emacs
+ vi-insert (: vi-command)
colored-stats
(>=bash-4.3-alpha,readline-6.3) - na linuxu bere z environmentu LS_COLORS (dircolors), Mac OS X - LSCOLORS
obarvene naseptavani (soubory, symlinky, adresare (+ sufix /)
visible-stats
appenduje @% atd podle filetypu pri naseptavani
blink-matching-paren (>=readline-4.2)
problikne párovou závorku "([{" při psaní ")]}"
známe z vimu a jiných editorů. must have pokud píšete nějaká závroková pekla. LDAP filtery apod.
completion-prefix-display-length 10
nahradi spolecny prefix (delsi nez hodnota) pri doplnovani za ...
je fajn kdyz naseptava, ale kdyz je na vyber moc podobne pojmenovanych souboru a ani nevite co za pismenko doplnit.
unix-filename-rubout - maze casti filenamu smerem <--. Jako separator pouziva " " a "/" - neni by default nabindovany
"\C-e\C-w": unix-filename-rubout
nemaze slova, ale celá jména souborů/adresářů
makra
* definování maker. globální / per application
vyvarovat se bindovani na C-a cokoliv a C-b cokoliv kvuli screen/tmuxu
mozne nastavit v souboru (INPUTRC env var), nebo příkaz set (temporary)
bind (bash built-in) vam pomuze s informacema co mate a nemate zapnute, nabindovane atd
}}}
}}}
{{{ ~/.bashrc
* shopt -s cdspell
* promine preklep pri změně adresáře - nepomáhá když jste moc opilí
* shopt -s autocd
* dobolí udělat cd bez příkazu cd. viz: (nefunguje když je název adresáře shodný s příkazem, funkcí atd)
$ cd /
$ pwd
/
$ var
$ pwd
/var
}}}
{{{ Zdroje
`man bash` sekce READLINE
`info rluserman` je tam vesmes totez co man bash
dokumentace/changelog readline
github dotfiles repositories. moje je https://github.com/jindraj/dotfiles
google :)
}}}
{{{ tmux
screen vs tmux:
* screen umí telnet a serial console
* z tmuxu se nezblázníte, je stále vy vývoji.
* sessions, windows, panes
* sessions
* jednotlivá sezení, stejně jako ve screeni. Možnost mít jich více. Možnost se mezi nimi přepínat (no detach).
* windows
* stejné jako ve screen
* panes
* podobné jako iTerm split panes.
* Screen umí také splity = nepříjemné na používání, pouze horizontální (vertikální potřebují patch)
Pro začátek jediná zkratka:
* C-b ? vypíše nápovědu, nápovědu čerpá i z vašeho configu. Neexistuje že by byla definovaná zkratka a k ní jiný popisek
}}}
{{{ memes :)
readline: http://cdn.meme.am/instances/55558687.jpg
screen?: http://cdn.meme.am/instances/58616121.jpg
Typical tmux user: http://fc04.deviantart.net/fs71/i/2011/029/8/3/emacs_user_at_work_by_earlcolour-d38aj2x.jpg
Tmux není takhle těžký: http://cdn.meme.am/instances/500x/60584312.jpg
tmux inside tmux: http://cdn.meme.am/instances/500x/56002545.jpg
http://cdn.meme.am/instances/55501453.jpg
http://i.stack.imgur.com/tIGSX.jpg
}}}
# vim:foldmethod=marker:foldlevel=0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment