컭on 턺
컭!?
얽, 헑, 읅, 쿍 등 닉네임으로 여기저기 활동 함.
TV도 만들고,
클라우드 리서치도 하다가,
요즘은 웹서비스 관련 이것저것 하는 중.
키보드 및 터미널 등 개발환경에 집착함.
https://github.com/keyolk/config
https://github.com/keyolk/workspace
오늘 이야기 할거
Ubiquitous 어딜가나 있고
Portability 들고다니기 편하고
Environment as Code 그럴듯 하고
기타 등등
왜 냐고 물으신다면 ...
어딜가도 있음
iterm
gnome terminal
konsole
putty
termux
wetty
...
ssh
everywhere
디지털 노마드를 꿈꾸며 ...
https://www.entrepreneur.com/article/334115
RDP ?
X11 ?
VNC ?
TeamViewer ?
Virtual Desktop ?
VSCode online
Eclipse Che
...
IDE ?
Cloud ?
게임이나 개발이나 ...
http://www.ddaily.co.kr/news/article/?no=188681
Environment as Code ?
https://www.gitpod.io/blog/dev-env-as-code/
https://www.einfochips.com/blog/an-introduction-to-environment-as-code-in-devops/
그냥
튜닝의 끝은 순정?
IDE
쓰던것만
더듬더듬
덕지덕지
순수주의
저는
대충이쯤
https://i1.wp.com/whycar.co.kr/wp-content/uploads/2019/08/7-5.jpg
살펴볼거
- Runtime environment
- Dotfiles
- Terminal / Shell
- Fuzzy Finding / Snippet / Parallel execution
- Editing Environment
- Fonts
- ETC
Runtime environment
executables
libraries
packages
Container ?
docker with root
docker with rootless
https://docs.docker.com/engine/security/rootless/
package manager with root
gentoo prefix with rootless
https://wiki.gentoo.org/wiki/Project:Prefix
Dotfiles
configs
secrets
https://dotfiles.github.io/
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
Git bare repo
$ git clone --bare https://github.com/keyolk/config.git $HOME/.config.repo
$ alias config=”git --git-dir=$HOME/.config.repo/ --work-tree=$HOME”
$ config checkout -f master
$ config submodule update --init --recursive
https://www.atlassian.com/git/tutorials/dotfiles
Secrets
pass
https://www.passwordstore.org/
https://boxnwhis.kr/2017/04/27/how_to_manage_passwords_for_your_team.html
gpg
The GNU Privacy Guard
https://gnupg.org/
vault
https://www.vaultproject.io/
Tools
Terminal Emulation
tmux
screen
Shells
bash
zsh
fish
https://busy.org/@themarkymark/introducing-tmux
https://github.com/greymd/tmux-xpanes
Fishshell
man page 기반 auto suggestion 및 tab completion
easy configuration
modern syntax
bash 호환이 아님 !?
set
functions
bind
http://fishshell.com/docs/current/index.html
Fuzzy Finding
fzf
peco
https://github.com/junegunn/fzf
https://github.com/junegunn/fzf/wiki/examples#general
https://github.com/peco/peco
https://www.youtube.com/watch?v=qgG5Jhi_Els
https://medium.com/free-code-camp/fzf-a-command-line-fuzzy-finder-missing-demo-a7de312403ff
Snippet
스니펫(snippet)은 재사용 가능한 소스 코드, 기계어, 텍스트의 작은 부분을 일컫는 프로그래밍 용어이다. 사용자가 루틴 편집 조작 중 반복
타이핑을 회피할 수 있게 도와준다.[1
terminal
- https://github.com/knqyf263/pet
- https://github.com/tokozedg/sman
vim
- https://github.com/SirVer/ultisnips
- https://github.com/honza/vim-snippets
- https://github.com/neoclide/coc-snippets
tldr
- https://tldr.sh/
Parallel execution
tmux-xpanes
GNU parallel
ansible
https://www.gnu.org/software/parallel/
https://github.com/greymd/tmux-xpanes
Compare diff
diff --side-by-side
sha1sum
md5sum
vimdiff
Git relates
gitconfig
git-credential-helper
pass-git-helper
aliases ...
VIM
...
https://www.freecodecamp.org/news/learn-linux-vim-basic-features-19134461ab85/
Vim features
buffer, window, tab
let, set: variable, options, register
map
augroup, autocmd
filetype, syntax
tag, mark,
quickfix, omnifunc, preview
netrw
modeline
clipboard
virtual term https://lornajane.net/posts/2018/vim-settings-for-working-with-yaml
https://lornajane.net/posts/2014/copypasting-and-vim
https://lornajane.net/posts/2011/using-modelines-in-vim
Vim vs neovim
2. Language Specifics
1. General Configurations
Indentation
.vimrc
set tabstop=2
set shiftwidth=2
set expandtab
set softtabstop=2
modeline
# vim: tabstop=2 shiftwidth=2 expandtab softtabstop=2
Editorconfig
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
[Makefile]
indent_style = tab
https://editorconfig.org/
https://github.com/editorconfig/editorconfig-vim
Surround
‘ “ ` ( [ { <
<tag></tag>
machakann/vim-sandwich
tpope/vim-surround
https://github.com/machakann/vim-sandwich/
https://github.com/tpope/vim-surround
http://evantravers.com/articles/2019/01/07/vim-sandwich-vs-vim-surround/
Alignment
junegunn/vim-easy-align
https://github.com/junegunn/vim-easy-align
Tree explorer
netrw
tpope/vim-vinegar
scrooloose/nerdtree
https://shapeshed.com/vim-netrw/
https://github.com/tpope/vim-vinegar
https://shapeshed.com/vim-netrw/
Tags
majutsushi/tagbar
taglist
ctags
- exuberatnt ctags
- universal ctags
gtags
etags
rtags
cscope
https://ctags.io/
https://www.gnu.org/software/global/
http://www.rtags.net/
http://majutsushi.github.io/tagbar/
Binary edit
augroup Binary
au!
au BufReadPre *.bin let &bin=1
au BufReadPost *.bin if &bin | %!xxd
au BufReadPost *.bin set ft=xxd | endif
au BufWritePre *.bin if &bin | %!xxd -r
au BufWritePre *.bin endif
au BufWritePost *.bin if &bin | %!xxd
au BufWritePost *.bin set nomod | endif
augroup END
fidian/hexmode
LSP
language server protocol
https://microsoft.github.io/language-server-protocol/
https://langserver.org/
https://github.com/dense-analysis/ale
https://github.com/neoclide/coc.nvim
Comments
scrooloose/nerdcommenter /* comment */
// comment
# comment
<!-- comment -->
Snippets
neoclide/coc-snippets
honza/vim-snippets
- snipMate format
- UltiSnips format
https://github.com/neoclide/coc-snippets
https://github.com/honza/vim-snippets
https://github.com/SirVer/ultisnips
Find all with fzf.vim
Files Windows Buffers
Colors
Lines
Tags HelpTags
Marks
Snippets
Maps
History
Commands
FileTypes
Shortcuts ...
tmux
- session/window/pane control
shell
- 알아서 ... ?
vim
- window/buffer/tab control
- fuzzy searching
- toggle: tag, list, paste, git, indent, hexmode
- editing:
- generals
- language specifics: LSP
Shortcuts ...
자주 반복될 키: 메타키를 활용
그외: Prefix 활용
Vim
general:
leader key prefix
fuzzy finding
surround
comment
toggle: sub leader prefix
visual mode: no need prefix
language specific: LSP extension
Keyboard layout
http://www.keyboard-layout-editor.com/
https://github.com/keyolk/qmk_firmware/issues/1
Like Term on Browser
vimium
supports
- chromium based
- firefox
Not supports
- android chrome
https://sudipbhandari126.github.io/resources/links-vimium.gif
Wiki
vimwiki
gollum
https://joereynoldsaudio.com/2018/07/07/you-dont-need-vimwiki.html
https://github.com/gollum/gollum
Fonts
powerine
ligature
nerdfonts
https://www.nerdfonts.com/
https://github.com/powerline/fonts
https://www.hanselman.com/blog/MonospacedProgrammingFontsWithLigatures.aspx
Todo
tmux
- fzf integration 더 많이
- clipboard integration 더 잘
- pane layout 편하게
fish
- snippet 더 잘
vim
- buffer 순서 바꿔보기
- 정렬하면서 indentation 설정 반영하기
- normal mode에서 keyboard layout 자동 전환
- window layout 더 쉽게
너무 어렵다 ...
etc
- synergy
- deskdock
In short
git / docker 로 관리하자
tmux / screen 꼭 쓰자
fishshell / zsh 에서 자동완성을 최대한 활용하자
neovim / vim
- editorconfig
- LSP
parallel ansible 은 필요할때 쓰자
fzf 많이 쓰자
끝!

[MeetUp][2nd] 컭on턺