Helix 尝鲜

主题设置

由于本人很喜欢doom设计类游戏 所以使用了doom dark theme

默认设置主题

Unix:

  1. 在.config文件夹下 创建helix文件夹
  2. 创建config.toml,然后写入以下内容
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    theme = "doom_acario_dark"

    [editor]
    line-number = "relative"
    mouse = false

    [editor.cursor-shape]
    insert = "bar"
    normal = "block"
    select = "underline"

    [editor.file-picker]
    hidden = false
  3. 重新启动helix即可

Emacs 修炼手册✨(Master Emacs)

快捷键

C -> ctrl
M -> meta/alt 少部分是esc

编辑快捷键

  • C-n nextline
  • C-p previous line
  • C-f forword
  • C-b backforword
  • C-k kill (从光标位置到末尾全部删除)
  • C-a a (a是字母表的开始) start of line
  • C-e end of line
  • M-< 去往编辑最开始的位置
  • M-> 去往编辑结束的位置
  • C-v 向下翻一屏
  • M-v 向上翻一屏
  • C-SPC 设置标记 逐字符标记
  • M-SPC 设计标记 逐单词标记
  • C-w kill 选中内容
  • M-w 复制选中内容
  • C-y 粘贴最近一次杀死的内容
  • C-d 删除一个字符
  • M-d 删除一个单词

文件快捷键

  • C-x C-f 打开文件
  • C-x C-s 保存文件
  • C-x C-w 另存为

必备helper

  • C-h help tutorial
  • C-h k help Keybind
  • C-h f help function

elisp快捷键

  • C-x C-e 求值快捷键在buffer中

给外观做点改变

  • 图形化配置:

    • 菜单栏 menu-bar-mode
    • 工具栏 tool-bar-mode
    • 滚动条 scroll-bar-mode
  • 文件配置 ~/.emacs

1
2
3
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)

认识配置文件

  1. ~/.emacs

    单一配置文件

  2. ~/.emacs.d

    更符合工程化

  3. ~/.config/emacs/init.el

    仅仅适用与>=27的版本

第一行配置代码

1
(setq inhibit-startup-screen t)

软件源

  • 网路问题需要配置
1
2
3
4
5
6
(setq package-archives
'( ("melpa" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")
("gnu" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
("org" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/org/")
)
)

安装第一个扩展

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
;;个别时候会出现签名检验失败
(setq package-check-signature nil)

;; 初始化软件包管理器
(require 'package)
(unless (bound-and-true-p package--initialized)
(package-initialize))

;; 刷新软件源索引
(unless package-archive-contents
(package-refresh-contents))

;; 第一个扩展插件:`use-package`,用来批量统一管理软件包
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))

使用use-package管理扩展

  • 最简洁的形式
1
(use-package restart-emacs)
  • 常用配置
1
2
3
4
5
6
7
8
(use-package SOME-PACKAGE-NAME
:ensure t ; 是否一定要确保已安装
:defer t ; 是否要延迟加载,很多时候可以加速Emacs的启动速度
:init (setq ...) ; 初始化配置
:config (...) ; 初始化后的基本配置参数
:bind (...) ; 快捷按键绑定
:hook (...) ; hook的绑定
)
  • 建议添加的配置
1
2
3
4
5
6
7
;; `use-package-always-ensure' 避免每个软件包都需要加 ":ensure t" 
;; `use-package-always-defer' 避免每个软件包都需要加 ":defer t"
(setq use-package-always-ensure t
use-package-always-defer t
use-package-enable-imenu-support t
use-package-expand-minimally t)

配置主题

1
2
(use-package gruvbox-theme
:init (load-theme 'gruvbox-dark-soft t))

好看的gruvbox-theme
顺便配置一个好看的Mode-line

需要提前下载好 所以需要M-x package-install gruvbox

1
2
3
4
5
(use-package smart-mode-line
:init
(setq sml/no-confirm-load-theme t
sml/theme 'respectful)
(sml/setup))

总结我的基础配置101

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
;; my config ~/.emacs

(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
;; close startup menu
(setq inhibit-startup-screen t)
;; set up mirror for plugins
(setq package-archives
'(
("melpa" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")
("gnu" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
("org" . "https://mirrors.tuna.tsinghua.edu.cn/elpa/org/")
)
)

;; refresh mirrors
;;个别时候会出现签名检验失败
(setq package-check-signature nil)

;; 初始化软件包管理器
(require 'package)
(unless (bound-and-true-p package--initialized)
(package-initialize))

;; 刷新软件源索引
(unless package-archive-contents
(package-refresh-contents))

;; 第一个扩展插件:use-package,用来批量统一管理软件包
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(setq use-package-always-ensure t
use-package-always-defer t
use-package-enable-imenu-support t
use-package-expand-minimally t)

(use-package restart-emacs)
(use-package gruvbox-theme
:init (load-theme 'gruvbox-dark-soft t))

Vim Notes✨ 关于一个小白vimer的积累~

Usage

四种模式:
1. 默认情况下 normal Mode
2. 按下i或者a insert Mode
3. 按下v visual Mode
4. 按下:(shift+;) command mode

移动normal mode

h左 j下 k上 l右

normal mode(普通模式)

  • 这些快捷键执行过后 保持普通模式
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    x          -> 删除当前光标所在位置
    u -> (undo)撤销上次命令修改
    . -> 重复之前的操作 宏操作
    f/t -> 行内查找下一个指定字符 ;重复 ,回退上一次操作
    F/t -> 行内查找上一个指定字符 ;重复 ,回退上一次操作
    /{ch} -> 整个文章查找下一个 n重复操作 N回退
    ?{ch} -> 整个文章查找上一个 n重复操作 N回退
    dd -> 删除光标所在当前行
    >G -> >G命令会增加从当前行到文档末尾处的缩进层级
    G -> 跳转到文件尾部
    gg -> 跳转到文件开头
    $ -> 跳转到句子末尾
    0 -> 跳转到句子开头
    * -> 查找当前单词 在全文当中依次查询 n重复 N回退 .重复
    C-a/x -> 跳转到本行最近的数字然后做加法/减法
    yy -> 复制整个行
    y -> 复制选择 y+<数字>+h/j/k/l 方向选择复制
    p -> 粘贴 存在寄存器的内容

insert mode(插入模式)

  • 这些快捷键执行过后 自动进入插入模式
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    a          -> 光标后移一位插入
    i -> 光标前移一位插入
    I -> 光标本行移动-最开始字符- 开始插入
    A -> 光标移动到行末 然后插入 类似($a)结合
    c -> change 定位到当前位置 然后下一步是删除 具体方向是自己定义 例子: c4h [c 定位后删除向左4个元素]
    cw -> change word 从当前位置开始直到word结束全部删除
    s -> 删除自己也算 也算是cl 定位删除向右一位
    S -> 删除光标所在的一行
    O -> ko 就是向上跳转 然后行尾插入
    o -> open an another line 跳转下一行 开始insert
    <C-r>=表达式<CR> -> 寄存器计算表达式

visual mode(视觉模式)

  • 这些是在normal mode按下v才可以使用的
1
2
3
4
移动hjkl   -> 选中移动
y -> yank 复制 保存在寄存器
p -> paste 粘贴 之前被yank过的内容

command mode(命令行模式)

1
2
3
4
5
:w     -> 保存写入
:q -> 退出
:q! -> !表示强制 总和就是强制退出
:split <filename> -> 上下分屏 快捷键:C-w s
:vsplit <filename> -> 垂直分屏 快捷键:C-w v
  • 快捷键: C-w + h/j/k/l 可以切换光标在分屏之间 H/J/K/L Z切换分屏位置 *

哲学 :

  1. 尽量去多使用.来重复修改的操作 而不是低效的的自我重复和感动
  2. 命令多去使用 菜就多练 命令需要多去使用
  3. 用hjkl去取代 上下左右方向键 因为上下左右方向键其实是 esc之后h 然后重新开始a插入 对于你撤销操作以及重复操作非常不友好
  4. 多在行内使用C-a C-x 来使得变量数字加减
  5. 。。。多学习多练习 才是学习正确姿势 但是要参考大量的资料并且阅读代码 好的engineer 80%的时间在思考 20%时间在写代码 好比做菜 如果能够不断迭代 并且优化准备过程 才是一个高端工程师应该去考虑的 不要做程序员 去做工程师engineer
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.