Skip to content

Instantly share code, notes, and snippets.

@tam17aki
Last active July 27, 2019 14:46
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save tam17aki/df78bd44efbd02feabcabc679bbdee3c to your computer and use it in GitHub Desktop.
(defun my:google-this ()
"検索確認をスキップして直接検索実行"
(interactive)
(google-this (current-word) t))
(defun region-to-single-quote ()
(interactive)
(quote-formater "'%s'" "^\\(\"\\).*" ".*\\(\"\\)$"))
(defun region-to-double-quote ()
(interactive)
(quote-formater "\"%s\"" "^\\('\\).*" ".*\\('\\)$"))
(defun region-to-bracket ()
(interactive)
(quote-formater "\(%s\)" "^\\(\\[\\).*" ".*\\(\\]\\)$"))
(defun region-to-square-bracket ()
(interactive)
(quote-formater "\[%s\]" "^\\(\(\\).*" ".*\\(\)\\)$"))
(defun region-to-brace ()
(interactive)
(quote-formater "\%s\]" "^\\(\(\\).*" ".*\\(\)\\)$"))
(defun quote-formater (quote-format re-prefix re-suffix)
(if mark-active
(let* ((region-text (buffer-substring-no-properties
(region-beginning) (region-end)))
(replace-func
(lambda (re target-text)
(replace-regexp-in-string re "" target-text nil nil 1)))
(text (funcall replace-func re-suffix
(funcall replace-func re-prefix region-text))))
(delete-region (region-beginning) (region-end))
(insert (format quote-format text)))
(error "Not Region selection")))
(require 'anzu)
(require 'counsel)
(require 'counsel-selected)
(require 'google-this)
(require 'iedit)
(require 'multiple-cursors)
(require 'osx-dictionary)
(require 'replace-from-region)
(require 'selected)
(require 'swiper)
(when (require 'selected nil t)
;; コメントアウト・アンコメントアウト
(define-key selected-keymap (kbd ";") #'comment-dwim)
;; 選択した関数のヘルプを表示
(define-key selected-keymap (kbd "f") #'counsel-describe-function)
;; 選択した変数のヘルプを表示
(define-key selected-keymap (kbd "v") #'counsel-describe-variable)
;; 選択したシンボルのヘルプを表示
(define-key selected-keymap (kbd "y") #'describe-symbol)
;; aproposを表示
(define-key selected-keymap (kbd "a") #'counsel-apropos)
;; 辞書を引く
(define-key selected-keymap (kbd "d") #'osx-dictionary-search-pointer)
;; 置換関連
(define-key selected-keymap (kbd "q") #'query-replace-from-region)
(define-key selected-keymap (kbd "Q") #'anzu-query-replace)
;; リージョンの文字数や単語数をカウント
(define-key selected-keymap (kbd "=") #'count-words-region)
;; 複数カーソルによるマーク
(define-key selected-keymap (kbd "A") #'mc/mark-all-like-this)
(define-key selected-keymap (kbd "n") #'mc/mark-next-like-this)
(define-key selected-keymap (kbd "p") #'mc/mark-previous-like-this)
(define-key selected-keymap (kbd "u") #'mc/unmark-next-like-this)
(define-key selected-keymap (kbd "U") #'mc/unmark-previous-like-this)
(define-key selected-keymap (kbd "s") #'mc/skip-to-next-like-this)
(define-key selected-keymap (kbd "S") #'mc/skip-to-previous-like-this)
;; 同時編集 iedit
;; デフォルトではバッファ全体にカーソルが分身して編集可能になるので、
;; ナローイングを適宜用いる
(define-key selected-keymap (kbd "i") #'iedit-mode)
;; 参考 http://blog.fujimisakari.com/elisp_useful_for_programming/
;; リージョンをシングルクオートで囲う
(define-key selected-keymap (kbd "\'") #'region-to-single-quote)
;; リージョンをダブルクオートで囲う
(define-key selected-keymap (kbd "\"") #'region-to-double-quote)
;; リージョンをブラケット(カッコ)で囲う
(define-key selected-keymap (kbd "(") #'region-to-bracket)
;; リージョンをカギカッコで囲う
(define-key selected-keymap (kbd "[") #'region-to-square-bracket)
;; swiper
(define-key selected-keymap (kbd "w") #'swiper-thing-at-point)
;; google 検索
(define-key selected-keymap (kbd "g") #'my:google-this)
;; ivyインターフェイスで選択
(define-key selected-keymap (kbd "l") #'counsel-selected)
;; 有効化
(selected-global-mode 1)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment