2012-03-14 10 views
1

etagsはグローバルマークスタックを使用しているようです。マルチバッファには独自のetagsマークが付いていますか?

同じTAGSを使用する2つのバッファを開くと、私はfind-tagsの操作を1つのバッファ(A)で実行し、もう1つのバッファ(B)でfind-tagsの操作を実行します。私は前のバッファ(A)に戻り、pop-tag-markの操作を実行します。バッファーBの前のマークであるマークにジャンプします。

この問題を解決する方法はありますか?

答えて

0

まず、これは完全に設計によるものです。ファイル内をジャンプする場合は、imenuが適しています。

今のデザインを変更してみましょう:

(defun my-pop-tag-mark (arg) 
    "call `pop-tag-mark' without argument. 

Pop to the next mark in the current buffer wit C-u prefix." 
    (interactive "P") 
    (when (consp arg) 
    (let ((buf (current-buffer)) 
      index) 
     (loop for marker in (ring-elements find-tag-marker-ring) 
      for i from 0 below (ring-length find-tag-marker-ring) 
      do (when (eq (setq temp (marker-buffer marker)) 
         (current-buffer)) 
       (setq index i) 
       (return))) 
     (if index 
      (ring-insert find-tag-marker-ring (ring-remove find-tag-marker-ring index)) 
     (error "no marker found in current buffer.")))) 
    (pop-tag-mark)) 
関連する問題