company-modeとかpabbrevとか試してみた

色々試してみましたよと.
company-modeが良さげだけど, まだちょっと常用する気にならない.
もうちょっと更新されるのを待ってみようかなと思う.
とりあえず新しくpabbrevを使うことにした.
今使ってるのは, pabbrevとac-modeとdabbrev-expand-multiple(自分が作ったのw).

company-mode


compnay-modeを使ってはみたがどうも微妙だなあ.
気になったことに全部対応でけねえ.

  1. 1文字打つたびに補完する
  2. キー割り当てが使いづらい
  3. インライン表示による補完で候補を一気に5つとかめくれない
  4. 最初に補完したときエラー吐く
  5. その後の補完でcompnay-modeが補完文字列にかけるfaceが消えない
  6. 表示する補完候補がどうにも使いづらい

こん中の最初の2つは.emacsに書くことで対応でけたけど, 他がなあ.
特に3番目の一気にめくれないのはツライ.
順方向がでけない. 逆方向は簡単にでけたのに
最初やったときにエラー吐くのは最初だけだからおk.
補完文字列にかけるfaceが消えないのは,
根気よく調べてdefadviceをかけてやりゃ消せそうだからそれもとりあえずおk.
6番目のは, どうなんだろう?表示項目を増やせば使い易くなんのかなあ.
つかあまりにも多くの候補から補完しようとしすぎな気がする.
かなり良さそうなんだけど, また今度.

hippie-expand

使うかどうかわからないけど, とりあえず設定した.
静的略語展開も展開できるのがいいなあ.

pabbrev


こういうリアルタイムに補完するものはSKKとよく機能が衝突するだけど,
それも無さげなので, 使ってみることにした.
地味に便利となるか, 欲しくもない補完が目の前でチラチラしてウザいとなるか・・・,
まあ使ってみて・・・やなあ.

今日書いた.emacs

一応貼っとく〜

;;; -*- Coding: iso-2022-7bit -*-
;;; 補完関係の設定.

;;; compnay-modeの設定
(require 'company-mode)
(require 'company-bundled-completions)
(company-install-bundled-completions-rules)
;; 1個目を自動的に補完
(setq company-auto-expand t)
;; 複数補完を出す前に待つ秒数?
(setq company-idle-delay nil)
;; 表示形式
;;(setq company-display-style 'pseudo-tooltip)
;; 文字を打っているときに自動的に補完ウィンドウを出さない
(setq company-complete-on-edit nil)
;; 補完をしたなら, すぐにツールチップを出す
(setq company-tooltip-delay 0)
;; 一度に表示する補完の量(デフォルト10)
(setq company-how-many-completions-to-show 5)
;; キー割り当て
(define-key company-mode-map "\t" 'ignore)
(define-key company-mode-map [(hyper I)] 'company-expand-common)
(define-key company-active-map "\C-n" 'company-cycle)
(define-key company-active-map "\C-p" 'company-cycle-backwards)
;; ;; 動作しやがらねえ
;; (define-key company-active-map " "
;;   '(lambda ()
;;      (interactive)
;;      (company-cycle company-how-many-completions-to-show)))
(define-key company-active-map "x"
  '(lambda()
     (interactive)
    (company-cycle-backwards company-how-many-completions-to-show)))
(define-key company-active-map "\t" 'company-expand-top)
(define-key company-active-map "\C-m" 'company-expand-top)
(define-key company-active-map (kbd "<return>") 'company-expand-top)
;; " "でのツールチップ一気にまわしができんのならあまり意味ないよなあ
(define-key company-active-map "a" (company-expand-number-macro 1))
(define-key company-active-map "s" (company-expand-number-macro 2))
(define-key company-active-map "d" (company-expand-number-macro 3))
(define-key company-active-map "f" (company-expand-number-macro 4))
(define-key company-active-map "g" (company-expand-number-macro 5))
;; TODO(使うなら)
;; どうも補完した後にcompany-modeで付けられたfaceが消えないようなので,
;; ソースを調べて, defadviceで消すようにすること
;; いや, エラーがでてるのが原因かも. もうちょっと待ってみよう. 更新されるまで.

;;; hippie-expand
;; M-x hippie-expandとする
(setq hippie-expand-try-functions-list
      '(try-complete-file-name-partially
        try-complete-file-name
        try-expand-all-abbrevs
        try-expand-list try-expand-line
        try-expand-dabbrev
        try-expand-dabbrev-all-buffers
        try-expand-dabbrev-from-kill
        try-complete-lisp-symbol-partially
        try-complete-lisp-symbol))
(global-set-key "\M-/" 'hippie-expand)

;; pabbrev.el
(require 'pabbrev)
(global-pabbrev-mode)

;; complete.el ends here

更新時刻

  • 1かいめ 2007年, 12月11日, 2:39
  • 2かいめ 2007年, 12月11日, 2:42