Helm1 is a framework to narrow selection. It can be installed by ELPA
[Read More]Emacs - Language Server Protocol
Introduction
Language server protocol (LSP) offers a uniform specification between a client and a server1.
The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, go to definition, find all references and alike into the tool
With LSP, different clients and development tools, e.g., integrated development environment (IDE), can share a common server. Taking C/C++ for instance, various clients, e.g., Emacs, Vim, Eclipse, etc. can communicate with a common server with their own clients. For Emacs, its client is enbodied as a mode, lsp-mode2.
Maskray has provided a good summary of cquery for reference3. This post just records the installation and configuration of LSP for C/C++.
Emacs - Movement
Character-wise movement
| Key binding | Purpose |
|---|---|
C-f | Move forward by a character |
C-b | Move backward by a character |
C-p | Move to previous line |
C-n | Move to next line |
Word-wise movement
| Key binding | Purpose |
|---|---|
M-f | Move forward by a word |
M-b | Move backward by a word |
Line-wise movement
| Key binding | Purpose |
|---|---|
C-a | Move point to the beginning of the line |
C-e | Move point to the end of the line |
M-m | Move point to the first non-whitespace character on this line |
Sexp-wise movement
| Key binding | Purpose |
|---|---|
C-M-f | Move forward by a s-expression (sexp) |
C-M-b | Move backward by a sexp |
List-wise movement
| Key binding | Purpose |
|---|---|
C-M-p | Move backward to the previous list |
C-M-n | Move forward to the next list |
C-M-u | Move up out of a list |
C-M-d | Move down into a list |
Sentence-wise movement
| Key binding | Purpose |
|---|---|
M-a | Move to the beginning of a sentence |
M-e | Move to the end of a sentence |
Paragraph-wise movement
| Key binding | Purpose |
|---|---|
M-{ | Move to the beginning of a paragraph |
M-} | Move to the end of a paragraph |
Defun-wise movement
| Key binding | Purpose |
|---|---|
C-M-a | Move to the beginning of a defun |
C-M-e | Move to the end of a defun |
Page-wise movement
| Key binding | Purpose |
|---|---|
C-x [ | Move backward by a page |
C-x ] | Move forward by a page |
C-v | Scroll down a page |
M-v | Scroll up a page |
C-M-v | Scroll down the other window |
C-M-S-v | Scroll up the other window |
M-< | Move to the beginning of the buffer |
M-> | Move to the end of the buffer |
Emacs - Mu4e
Introduction
mu4e is an excellent mail client for Emacs whereby sending/getting mails can be carried out in Emacs. For an Emacs user, the deep integration gives rise to great convenience and efficiency. This post provides a brief summary for the utilization of mu4e.
Emacs - Wanderlust
Introduction
Wanderlust is also a mail client within Emacs. This post aims to summarize the procedure of its installation and configurations.
Emacs - YCMD
Introduction
YouCompleteMe (YCM) is originally a completion framework for VIM1, and afterwards splitted into a general server and a client. The general server, namely YCM daemon (YCMD)2, is able to provide interface to a variety of clients beyond VIM, e.g. Emacs. Moreover, both company and auto-complete can directly utilize what the server/daemon provides.
GitLab
Introduction
GRUB
GRUB is a powerful bootloader which can boot a variety of operation systems, including Unix, Linux and Windows. It is usually installed in the MBR of a disk. This article presents the method how to repair it if it is corrupted.
[Read More]LaTeX - Gantt Chart
Introduction
Today, I found an interesting \(\LaTeX\) package, pgfgantt. This package provides a ganttchart environment and, as its name indicates, can produce Gantt charts.
LaTeX - Pgfplots
Introduction
Pgfplots is an excellent LaTeX package to plot high quality graphs. This post just summaries its basic usages.