Emacs - Helm

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++.

[Read More]

Emacs - Movement

Character-wise movement

Key bindingPurpose
C-fMove forward by a character
C-bMove backward by a character
C-pMove to previous line
C-nMove to next line

Word-wise movement

Key bindingPurpose
M-fMove forward by a word
M-bMove backward by a word

Line-wise movement

Key bindingPurpose
C-aMove point to the beginning of the line
C-eMove point to the end of the line
M-mMove point to the first non-whitespace character on this line

Sexp-wise movement

Key bindingPurpose
C-M-fMove forward by a s-expression (sexp)
C-M-bMove backward by a sexp

List-wise movement

Key bindingPurpose
C-M-pMove backward to the previous list
C-M-nMove forward to the next list
C-M-uMove up out of a list
C-M-dMove down into a list

Sentence-wise movement

Key bindingPurpose
M-aMove to the beginning of a sentence
M-eMove to the end of a sentence

Paragraph-wise movement

Key bindingPurpose
M-{Move to the beginning of a paragraph
M-}Move to the end of a paragraph

Defun-wise movement

Key bindingPurpose
C-M-aMove to the beginning of a defun
C-M-eMove to the end of a defun

Page-wise movement

Key bindingPurpose
C-x [Move backward by a page
C-x ]Move forward by a page
C-vScroll down a page
M-vScroll up a page
C-M-vScroll down the other window
C-M-S-vScroll 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.

[Read More]

Emacs - Wanderlust

Introduction

Wanderlust is also a mail client within Emacs. This post aims to summarize the procedure of its installation and configurations.

[Read More]

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.

[Read More]

GitLab

Introduction

Gitlab is a code management service based on git. It is very powerful and suitable to collaborated development within a team.

[Read More]

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.

[Read More]

LaTeX - Pgfplots

Introduction

Pgfplots is an excellent LaTeX package to plot high quality graphs. This post just summaries its basic usages.

[Read More]