From 03969dea69150850d3a417650a5d0c7a6ea74476 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Tue, 1 Jul 2014 15:00:54 +0200 Subject: Stage single line in magit --- lisp/init-git.el | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'lisp/init-git.el') diff --git a/lisp/init-git.el b/lisp/init-git.el index 68be561..ab9384a 100644 --- a/lisp/init-git.el +++ b/lisp/init-git.el @@ -25,13 +25,29 @@ (magit-visit-item other-window) (select-window current-window))) +(defun magit-stage-line-at-point () + "Stage the current line or region." + (interactive) + (if (use-region-p) + (magit-stage-item) + (let ((current-line (line-number-at-pos))) + (save-excursion + (beginning-of-line) + (set-mark (line-end-position)) + (magit-stage-item)) + (goto-char (point-min)) + (forward-line (1- current-line))))) + (add-hook 'magit-status-mode-hook (lambda () ;; make C-o and o behave as in dired (define-key magit-status-mode-map (kbd "C-o") 'magit-visit-item-noselect) (define-key magit-status-mode-map (kbd "o") - 'magit-visit-item))) + 'magit-visit-item) + ;; stage single line with C-c 1 + (define-key magit-status-mode-map (kbd "C-c 1") + 'magit-stage-line-at-point))) (defun git-root () "Find the git repository root of the visiting file." -- cgit v1.2.3