Skip to content

Latest commit

 

History

History
212 lines (133 loc) · 7.15 KB

wiki.md.html

File metadata and controls

212 lines (133 loc) · 7.15 KB
 <meta charset="utf-8" emacsmode="-*- markdown -*-"><link rel="stylesheet" href="https://casual-effects.com/markdeep/latest/slate.css?">

                    **Peculiar Computer Club Wiki**

This is the official wiki of the PCC (Peculiar Computer Club)

Programming Languages

Collection of programming language resources.

C

C Programming Language

C is wonderful low-level programming language. The language itself is famous for being powerful as it's wielder. Everyone should learn some C, because it helps in the eternal goal of becoming a computer wizard.

Useful resources

Books

Awesome libraries

C++

#TODO

Common Lisp

#TODO

Elm

#TODO

Elixir

#TODO

Erlang

#TODO

Haskel

#TODO

Go

#TODO

JavaScript

#TODO

Lisp

#TODO

Purescript

#TODO

Python

#TODO

Racket

#TODO

Ruby

#TODO

Rust

#TODO

Scala

#TODO

Talks & Videos

Interesting talks and videos to watch

Papers & Blogposts

Papers and blogposts on different topics

#TODO

Tools

Usefull software and hardware tools

[neo]vim

The meeting point of PCC's cult of vi.

Learning material

  • Use Vim Like a Pro by Tim Ottiger is a great book covering many important features of [neo]vim and explains its philosophy well. Learning the concepts described here will keep you busy for many weeks and will spark your curiosity about the editor even more.
  • Learn Vimscript the Hard Way by Steve Losh. A lot of this editors power comes from its extensibility. Tweaking its behaviour to support your workflow will not only make you more effective. It will make you reconsider your view on process automation itself.

Tips and tricks

No rocket science, but life changing stuff nevertheless.

clipboard copy/paste

If you want to copy to/paste from clipboard in neovim, the trick is to use + and * registers (:help registers to learn more). It is handy to define your own commands for this as in the following example. These make hitting <leader>y or <leader>p in visual and normal mode work as usual yank or paste, only on the specified registers. Since the yank sentence is not finished, this retains all the flexibility of the raw commands, allowing you to for example copy the whole word under cursor to clipboard by hitting <leader>yiw.

The meaning of + and * registers differs based on your OS. See this SO answer to learn more.

Useful help command: :help clipboard

Example init.vim

nnoremap <leader>y "+y
nnoremap <leader>p "+p
vnoremap <leader>y "+y
vnoremap <leader>p "+p

quick init.vim/.vimrc config update without restarting the editor

Open a vertical split with your init.vim/.vimrc with the first command, make changes, save, then use the second command to source the changes.

nnoremap <leader>ei :vsplit $MYVIMRC<cr>  # ei means edit init.vim
nnoremap <leader>si :so $MYVIMRC<cr>      # si means source init.vim

neovim + tmux

One major annoyance when using neovim inside tmux is a small default delay tmux has when you hit escape. This means, that when you want to exit insert mode, you have to wait before being able to type other neovim commands. Here is a setting to turn this off [1]. It might, or might not cause you problems. Consult tmux manpages (search for escape-time) or see this answer for more information.

Another helpful trick is to use vim navigation keys, which is the second line of the config [2]. It is not only that you do not have to switch from hjkl to arrow keys based on where you are. You can also use Shift + v in tmux's copy mode to select whole lines, just as in neovims visual mode.

Example ~/.tmux.conf

set -s escape-time 0   # [1] avoid the delay when hitting escape
set -g mode-keys vi    # [2] use your favorite navigation keys in copy mode

Books

Nice books to put on the readinglist

#TODO

Hardware

Everything hardware related.

#TODO

<style class="fallback">body{visibility:hidden}</style><script>markdeepOptions={tocStyle:'long'};</script> <script src="https://casual-effects.com/markdeep/latest/markdeep.min.js?" charset="utf-8"></script>