aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/init/ycp-editing.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/init/ycp-editing.el')
-rw-r--r--emacs/.emacs.d/init/ycp-editing.el116
1 files changed, 116 insertions, 0 deletions
diff --git a/emacs/.emacs.d/init/ycp-editing.el b/emacs/.emacs.d/init/ycp-editing.el
new file mode 100644
index 0000000..e9c7e4c
--- /dev/null
+++ b/emacs/.emacs.d/init/ycp-editing.el
@@ -0,0 +1,116 @@
+;;; ycp-editing.el -- My config for editing -*- lexical-binding: t -*-
+
+;; Copyright (C) 2023 Free Software Foundation.
+
+;; Author: Yuchen Pei <id@ypei.org>
+;; Protesilaos Stavrou <info@protesilaos.com>
+;; Maintainer: Yuchen Pei <id@ypei.org>
+;; Package-Requires: ((emacs "28.2"))
+
+;; This file is part of dotfiles.
+
+;; dotfiles is free software: you can redistribute it and/or modify it under
+;; the terms of the GNU Affero General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; dotfiles is distributed in the hope that it will be useful, but WITHOUT
+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU Affero General Public
+;; License along with dotfiles. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; My config for editing.
+
+;;; Code:
+
+
+;; line wrap at window edge
+(set-default 'truncate-lines nil)
+
+(setq kill-do-not-save-duplicates t)
+(setq bidi-inhibit-bpa t)
+(setq save-interprogram-paste-before-kill t)
+(setq kill-ring-max 200)
+
+(my-package my-editing
+ (:delay 5)
+ (my-keybind global-map
+ "M-k" #'my-kill-line-backward
+ "M-w" #'my-copy-line-or-region
+ "C-o" #'my-new-line-above-or-below
+ "C-<" #'my-escape-url-dwim
+ "M-'" #'my-insert-pair
+ "M-\\" #'my-delete-pair-dwim
+ "M-Z" #'my-zap-back-to-char
+ "C-x C-t" #'my-transpose-lines
+ "M-`" #'my-buffer-create-scratch
+ "C-M-;" #'my-comment-and-copy-selection
+ "M-Q" #'my-unfill-paragraph
+ "C-x M-s" #'my-save-without-formatting
+ "C-x w" #'my-copy-url-at-point
+ "C-<backspace>" #'my-backward-kill-path-component
+ "C-w" #'my-kill-region-if-active
+ "C-c r <SPC>" #'my-replace-leading-space
+ "C-c r <RET>" #'my-concat-lines
+ "C-M-y" #'my-yank-primary
+ "C-a" #'my-beginning-of-line-or-indentation
+ )
+ )
+
+(setq viper-mode nil)
+(my-package viper
+ (:delay 60))
+
+(define-key global-map [f2] 'revert-buffer)
+(define-key global-map (kbd "C-c r r") 'replace-regexp)
+(define-key global-map (kbd "C-c r s") 'replace-string)
+
+(my-keybind global-map
+ "M-o" #'delete-blank-lines ; alias for C-x C-o
+ "M-SPC" #'cycle-spacing
+ "M-z" #'zap-up-to-char ; NOT `zap-to-char'
+ "<C-M-backspace>" #'backward-kill-sexp
+ )
+
+(my-package pyim
+ (:delay 30)
+ (:install t))
+
+;;;; Auto revert mode
+(setq auto-revert-verbose t)
+(global-auto-revert-mode 1)
+
+;;;; Delete selection
+(delete-selection-mode 1)
+
+;;;; Tabs, indentation, and the TAB key
+(setq-default tab-always-indent 'complete
+ tab-first-completion 'word-or-paren-or-punct ; Emacs 27
+ tab-width 2
+ indent-tabs-mode nil)
+
+(define-key global-map [f12] 'display-line-numbers-mode)
+
+;; show column number
+(column-number-mode t)
+
+(define-key global-map (kbd "C-x F") 'my-sudo-find-file)
+
+;; find file
+(ffap-bindings)
+
+(put 'narrow-to-region 'disabled nil)
+
+(setq large-file-warning-threshold 15000000)
+
+(add-hook 'text-mode-hook #'turn-on-auto-fill)
+(add-to-list
+ 'auto-mode-alist
+ '("\\(README\\|CHANGELOG\\|COPYING\\|LICENSE\\)\\'" . text-mode))
+
+(provide 'ycp-editing)