+;;; -*- lexical-binding: t -*-
+
;; Disable suspend-frame, it's annoying
(global-set-key (kbd "C-z") nil)
+(global-set-key (kbd "C-x C-z") nil)
;; General commands
(global-set-key (kbd "M-x") 'counsel-M-x)
;; Files/buffers
(global-set-key (kbd "C-x C-f") 'counsel-find-file)
-(global-set-key (kbd "C-x f") 'counsel-find-file)
-(global-set-key (kbd "C-c f") 'counsel-git)
-(global-set-key (kbd "C-c g") 'counsel-git-grep)
-(global-set-key (kbd "C-x k") 'my/kill-buffers-not-in-frame)
+(global-set-key (kbd "C-x f") 'counsel-git)
+(global-set-key (kbd "C-x g") 'counsel-git-grep)
+(global-set-key (kbd "C-x c") 'my/kill-buffers-not-in-frame)
(global-set-key (kbd "C-x C-b") 'ibuffer)
(global-set-key (kbd "C-x C-r") 'ivy-recentf)
+(global-set-key (kbd "C-x t") 'my/find-prod-or-test-file)
+(global-set-key (kbd "C-c g d") 'git-gutter:popup-hunk)
+(global-set-key (kbd "C-c g p") 'git-gutter:previous-hunk)
+(global-set-key (kbd "C-c g n") 'git-gutter:next-hunk)
+(global-set-key (kbd "C-c g r") 'git-gutter:revert-hunk)
;; Windows/frames
+(global-set-key (kbd "C-x o") 'ace-window)
+(global-set-key (kbd "C-x 9") 'my/window-resize-mode)
(global-set-key (kbd "<C-up>") 'windmove-up)
(global-set-key (kbd "<C-down>") 'windmove-down)
(global-set-key (kbd "<C-left>") 'windmove-left)
(global-set-key (kbd "<C-right>") 'windmove-right)
;; Movement
-(global-set-key (kbd "M-g j") 'ace-jump-mode)
+(global-set-key (kbd "M-g f") 'avy-goto-char-in-line)
+(global-set-key (kbd "M-g g") 'avy-goto-line)
+(global-set-key (kbd "M-g M-g") 'avy-goto-line)
+(global-set-key (kbd "M-g j") 'avy-goto-word-1)
;; Text formatting
(global-set-key (kbd "M-/") 'hippie-expand)
-(global-set-key (kbd "M-;") 'toggle-comment-on-line)
+(global-set-key (kbd "M-;") 'my/comment-dwim)
(global-set-key (kbd "M-i") 'change-inner)
(global-set-key (kbd "C-o") 'my/open-line-above)
(global-set-key (kbd "M-o") 'my/open-line-below)
+(global-set-key (kbd "C-c c") 'my/copy-line)
+(global-set-key (kbd "C-c d") 'my/duplicate-line)
;; Marking
(global-set-key (kbd "C-=") 'er/expand-region)
(global-set-key (kbd "C-c m") 'mc/mark-more-like-this-extended)
;; Killing and deleting
+(global-set-key (kbd "C-y") 'my/yank)
(global-set-key (kbd "M-y") 'counsel-yank-pop)
-(global-set-key (kbd "M-_") 'my/copy-line)
(global-set-key (kbd "M-z") 'zap-up-to-char)
+(global-set-key (kbd "C-c k") 'kill-whole-line)
+(global-set-key (kbd "C-c s") 'my/substitute-line)
;; Mode switching
+(global-set-key (kbd "C-x C-j") 'direx-project:jump-to-project-root-other-window)
+(global-set-key (kbd "C-c g s") 'magit-status)
+(global-set-key (kbd "C-c g g") 'magit-dispatch-popup)
+(global-set-key (kbd "C-c g f") 'magit-file-popup)
(global-set-key (kbd "<f8>") 'flyspell-mode)
(global-set-key (kbd "<f9>") 'whitespace-mode)
(global-set-key (kbd "<f10>") 'toggle-truncate-lines)
+
+
+(defun my/window-resize-mode ()
+ (interactive)
+ (message "Resize window with the arrow keys")
+ (let ((keymap (make-sparse-keymap)))
+ (define-key keymap [up] #'enlarge-window)
+ (define-key keymap [down] #'shrink-window)
+ (define-key keymap [left] #'shrink-window-horizontally)
+ (define-key keymap [right] #'enlarge-window-horizontally)
+ (set-transient-map keymap t)))