Emacs Part 51
■ このスレッドは過去ログ倉庫に格納されています
「リージョン選択時はその文字列をisearch、なければふつうにisearch」をC-sに置き換えたいです。いい書き方ないですか・・・ >>240 (set-language-environment "japanese") (set-default-coding-systems 'utf-8) (prefer-coding-system 'utf-8-unix) spacemacsは知らないけど、emacsで日本語ファイル名をdiredで表示する設定例 1行目を最後に実行するとutf-8ではなく、EUCが優先されるから注意 >>241 isearchの機能 C-s C-w を使うのはどう? C-sを押してからC-wを押すと単語を検索文字列に追加する 日本語を検索するとワード区切りの問題が辛いので isearch-delete-charからisearch-del-charに変更すると個人的に便利 (define-key isearch-mode-map (kbd "<backspace>") 'isearch-del-char) >>241 こんな advice 付けるってのは? (defadvice isearch-mode (around ad-isearch-bounds activate) (let ((bounds (and (use-region-p) `(,(region-beginning) . ,(region-end))))) (when bounds (deactivate-mark t)) ad-do-it (when bounds (let ((str (buffer-substring-no-properties (car bounds) (cdr bounds)))) (when (< (car bounds) (point)) (goto-char (car bounds))) (isearch-yank-string str))))) >>242 ご指導ありがとうございます その3つの設定を dotspacemacs/user-init に記述しましたが文字化けは解消されませんでした ~/.emacs.d/init.el に同様の記述をした素の emacs でも同様でした *Find* バッファの最初の1行目のカレントディレクトリの表示は日本語は問題なく find された結果だけ文字化けをしています >>240 Emacs じゃなくて find -ls の時点で化けてるね FIND(1) 変わり者のファイル名 https://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html#lbAL Emacs 側での対策はカスタマイズ変数 find-ls-option を設定して、find の -ls 以外のアクションを使うこと >>245 設定例 https://pastebin.com/w9dw0HFc 何かが引っかかるらしく書き込みがブロックされるのでpastebin 今の今までテキストターミナルのフレームとウインドウのフレームを同時に使用できるなんて知らなかった… >>245-246 ありがとうございます 設定例で *Find* バッファの日本語ファイル名が文字化けせずに表示されました ;; ネット検索してもほとんど find-ls-option に関する情報がなく自力では絶対解決できなかったので大変助かりました >>247 どういう意味? emacsclientってこと? >>249 うん。 サーバーに接続してるターミナルのsshからローカルのXmingに emacsを接続させてサーバー機能を起動してからemacsclient -nw -cしたら 新しいウインドウができる代わりにターミナルにフレームが出てきた。 こんな使い方をしたことなかったからびっくり。 >>242 カーソル位置の単語だと不便なんですよね >>243 やりたいことができました。ありがとうございます。以下のコードいじって作れないか考えましたが自分には無理でした http://blog.livedoor.jp/tek_nishi/archives/2831992.html spacemacs 使い始めたが、マイナーモードを表すシンボルとして丸文字と普通のアルファベットが入り乱れててダサい ここのテーマ的なものって変えられる? 丸文字を使わせないようにできれば満足なんだが >>252 マニュアルの「Minor Modes」に > Unicode symbols are displayed by default. > Setting the variable dotspacemacs-mode-line-unicode-symbols to nil in your ~/.spacemacs will display ASCII characters instead (may be useful in terminal if you cannot set an appropriate font). ってあるから nil にしたみたら「Hmio|w|K」って Ascii になったよ こっちの方がいいかも http://spacemacs.org/doc/DOCUMENTATION.html#minor-modes >>253 thank you こちらの方が格好良いね evil の検索(スラッシュ、クエスチョン、n、N 等)で migemo って使える? やり方分からん isearch、helm、swoop 等ではちゃんと使えてる 「migemo したいならisearch」と割り切るべき? >>255 /,? での検索および n N では使えないね SPC s s (Swoop) なら使えてる SPC f f (HELM Find Files) では例えばカレントディレクトリが /user/hoge/fuga/ で「fuga/」の「/」の後ろにカーソルがあって「あわわ.txt」を開きたいときは「 awawa」(半角スペース+awawa)って入力するとOK そだ additional-packages に migemo と avy-migemo を入れて user-config で (helm-migemo-mode 1) と (avy-migemo-mode 1) はやってる? migemo を用いた検索は 同一バッファ内で隠れたところを含むジャンプなら SPC s s (Swoop) で他のウィンドウを含む見えているところへのジャンプなら SPC j j (evil-avy-goto-char) や SPC j J (evil-avy-goto-char-2) を使い分けている まあ evil-avy-goto-char の無制限文字列版があれば便利なことは認めるw >>256 > SPC s s (Swoop) なら使えてる > SPC f f (HELM Find Files) では例えばカレントディレクトリが > /user/hoge/fuga/ > で「fuga/」の「/」の後ろにカーソルがあって「あわわ.txt」を開きたいときは「 awawa」(半角スペース+awawa)って入力するとOK それは俺もできてる できなくて困ってるのは Vim 風の検索での話 > そだ additional-packages に migemo と avy-migemo を入れて user-config で (helm-migemo-mode 1) と (avy-migemo-mode 1) はやってる? もちろんやってる >>257 俺もそのように使い分けようと思う ノーマルステートでの/のバインド書き換えるのはダメなん? 香り屋vimのg/みたいな動作が欲しいってことでは。 spacemacsには無かったはず。 >>259 「/」を次のように書き換えてもまともに動作しないんじゃない? (bind-keys :map evil-normal-state-map ("/" . isearch-forward)) 「/ hoge」で「hoge」を検索して次の「hoge」を探そうと「/」を入力しても「hoge/」を検索するような気が 単純にキーバインドの書き換えじゃ無理じゃないかな? >>257 SPC s C-s (helm-multi-swoop-all) が evil-avy-goto-char の無制限文字列版の代わりになるかな? https://imgur.com/a/1VeGYA3 flycheck のポップアップのアイコンってこれで合ってるん? dired で表示する属性を指定できる便利なの見つけたんだけど find-dired に対応してないのが悲しい https://github.com/misohena/dired-details-s >>264 dired-details-s-regexp の size と dired-details-s-set-text-properties の一部を変更したら find-dired でも使えるようになった・ω・ spacemacs を使ってる者ですが、auctex モードで auto-fill が必ずオンになるという現象がおきます。 user-config() に (auto-fill-mode -1) と書いても auctex モードではオンになります。 latex-enable-auto-fill は nil です。 理由も解決方法も分からないです。 助けていただけないでしょうか。 >>266 (electric-indent-mode -1) でどうだろ?必要なら auctex モードに紐付けして >>267 ありがとうございます electric-indent-mode 自体初めて知りましたが、これをマイナス1にしても auctex では auto-fill-mode になります toggle-truncate-lines と新機能の (setq auto-hscroll-mode 'current-line) の組み合わせいいね joveだかmicro emacsであったの思い出した >>268 このサイトの内容が参考にならないかな? Emacs の auto-fill-mode の挙動を抑える http://biwakonbu.com/?p=581 >el-get でインストールした skk-mode のデフォルト設定が悪さをしていました。 >>270 ありがとうございます。 skk は使用しているのですが、ここで言われていることはやっています。 また、英語ドキュメントでも同じように auto-fill-mode が動きます。 >>271 とにかく auto-fill-mode を off にしたいのなら user-config に (spacemacs/toggle-auto-fill-mode-off) を追記ではどうかな? SPC t F で on/off の切り替えができるみたい NTEmacsでorg-modeで画像のインライン表示の設定をしたんだけど、画面がちらつく。どうしたらいいかな? >>274 そうしたいのはやまやま何ですが、MS-ACCESSが業務の根幹でして、そのドキュメントやらを作成したり、VBEの代替を目標にNTEmacsを導入した経緯がありまして… >>272 ありがとうございます。 現状はそれで対応しています。 ただ、なぜこうなっているのか全く分からないので質問させていただきました。 こちらの方でもう少し調査し、なにか分かったら報告いたします。 >>276 Spacemacs ではデフォルトで (spacemacs/toggle-auto-fill-mode-on) になっているだけなんじゃない? gnupackに入ってるemacsってcygwinのやつ? >>278 Windows 環境で動作するのではなく擬似 Linux 環境で動作するかどうかという質問なら確か Windows 環境でそのまま動作するんじゃなかったっけ? >>278 すまん嘘言った(´・ω・`) https://ja.osdn.net/projects/gnupack/ emacs と cygwin を導入できるって書いてあったから cygwin のやつなんじゃないかな? >>278 スレ違いのような気もするが、12.00からCygwin版になった。遅いよ。 mingw版がNTEmacsということになるのかな。 パフォーマンスの問題はあるけど、アプリ一般の動作としてはcygwinの方が良かったりするよね。 org-modeのTODOでclock-inを使用しないで,clock-outだけ使いたい場合はそのような機能はありますか? 終了日時の記録のみ欲しくて経過時間は不要という場合はどうしたいいのでしょうか? >>285 org-clockを使わないで素のorg-modeを使うんじゃダメ? >>285 TODO -> DONE で終了時刻付くよ >>286 それでいいですね。しかしながら >>287 さんのおっしゃるとおりTODO -> DONEで記録が自動的に出来るならそれがベストですね。 で、試してみましたが、終了時刻が付与されませんね。なにか設定が必要なのでしょうか 知恵を貸してほしい。 next-logical-line で next-line のようにカーソルの位置を維持するには どうしたらいいだろう? next-logical-line は 空行に一度行くと、そのまま行頭を移動するようになる。 よろしくお願いします。 そりゃ空行は行頭しかないんだから,そこに移動したら行頭になる。 空行に移動したときにスペース連打して位置をキープさせたいってこと? next-lineだと開始したポジションを維持するよね。 それをlogicalの方でも実現したい。 temporary-goal-column という変数が関係しているようだ。継続調査中。 next-logical-line が桁位置を保持しないのはなんだかバグっぽい気がするけど、どうなんだろう とりあえず lisp/simple.el の line-move-1 の6353行目 https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/simple.el?id=e1646e1e2864#n6353 (if (not (memq last-command '(next-line previous-line))) ここを (if (not (memq last-command '(next-line previous-line next-logical-line previous-logical-line))) に変えてみるとそれっぽくはなる こんなのも見つけた こっちはより一層バグっぽい感じ abcdef abcdef 1行目の、たとえば c の上にカーソルを置いて M-x next-logical-line すると 2行目の c に移動する そこで C-p で1行目の c に戻り、もう一度 M-x next-logical-line すると 今度は2行目の先頭に移動する Emacs 24では再現しない また M-x … ではなく、global-set-key でキーに割り当てた next-logical-line でも再現しない この現象は (setq line-move-visual nil) した状態なら、M-x next-line でも再現する multiple-cursorsがnext-logical-lineを使っていてカーソルがずれるのをなんとか しようとしている。以前は以下の設定でうまく動いていたような気がするんだが、 現在使っているemacs26.1ではカーソルがずれる時がある。やはりバージョンが 関係しているんですかね。 https://www49.atwiki.jp/ntemacs/pages/40.html >>296 FreeBSD11.2の26.1だとそれ再現しないっぽいんだが。 emacsを久しぶりに立ち上げたらinit.elにエラーがある。 と出て、emacs --debug-initで立ち上げろと出たのでそうしたら いろいろ表示されたのですが、これからどうやってdebugしたらいいのか アドバイスください >>298 何でだろう… ああわかった、多分 M-x next-logical-line の入力方法が違うからだ 私は二回目の M-x プロンプトでの入力に、上矢印キー(履歴)を使っていました 履歴を使わずコマンド名を直接タイプしたり あるいは M-p (previous-history-element) で履歴を呼び出して使った場合は、再現しません 上矢印キー (previous-line-or-history-element) で履歴を使うと再現します >>300 つまり previous-line-or-history-element に何かあるのかな と思ったけど previous-line-or-history-element が絡んでいなくても 変な位置に移動する別の手順を発見(Emacs 26.1) emacs -Q で起動 *scratch* バッファが表示される。バッファ内容は: ;; This buffer is for text that is not saved, and for Lisp evaluation. ;; To create a file, visit it with C-x C-f and enter text in its buffer. M-x column-number-mode RET (※これは位置の説明を明確にする為で症状再現とは関係ない) M-< (バッファ先頭へ移動) M-f (最初の単語 "This" 直後の空白の上へ移動。行,桁表示は 1,7) M-x n-l-l RET (二行目の b の上に移動) C-p (一行目の b の上に移動) M-x C-p (ミニバッファに "Beginning of buffer" と表示される) M-p (ミニバッファの表示が M-x next-logical-line となる) RET (二行目の最初の単語 "To" 末尾、"o" の上に移動する。行,桁表示は 2,4。 ここで期待した結果は 2,7、"create" の "r" の上) >>299 いろいろ表示されたのを見て頑張ってくださいとしかw ウチラはあんたの Emacs のバッファを見ることできないんだよ >>302 ホントそれ。 バックトレース見ればどの関数でエラー起きたかの 特定くらいは初心者でも自力でできそうな気がするので、 とりあえずそこをコメントアウトしとけば? >>299 久しぶりに emacs を立ち上げるくらい使っていないのならどうせ init.el だって大したことないと思うから ~/.emacs.d 以下全部削除すればいいんじゃない? >>301 開始位置に関係なく移動先はミニバッファの入力欄先頭位置と同じ桁になってる。 ミニバッファの入力が元のバッファの入力と同列に扱われてるね。 バグというべきかは悩む挙動… >>290 結局、interactiveに前後の論理行に移動するときに桁位置を保持したいだけなら、 next-lineでline-move-visualをnilにするだけ? ただ、next-logical-lineの挙動は必ずしも一致しないけど、 この関数を使う機会があるのかな? >>307 multiple-cursors内で使っているのです とりあえず、logical-line問題はこれで解決できるかなぁ。 (defun ad-next-logical-line (orig-fun &rest args) (if (eq last-command 'next-logical-line) (let ((last-command 'next-line)) (apply orig-fun args)) (apply orig-fun args))) (advice-add 'next-logical-line :around #'ad-next-logical-line) (defun ad-previous-logical-line (orig-fun &rest args) (if (eq last-command 'previous-logical-line) (let ((last-command 'previous-line)) (apply orig-fun args)) (apply orig-fun args))) (advice-add 'previous-logical-line :around #'ad-previous-logical-line) でも、multiple-cursors問題はさらに別なところにあることが分かった。 temporary-goal-columnが保管される仕組みがあるみたい。 mc/cursor-specific-vars変数に定義されている。 結局、multiple-cursorsは以下で直った。wikiの設定に1行目を追加しただけで した。ただ、どのような影響があるのかは分かりません..。 (delq 'temporary-goal-column mc/cursor-specific-vars) (defun mc/last-command-check () (memq last-command '(mc/mark-next-like-this mc/unmark-next-like-this mc/skip-to-next-like-this))) ;; 縦移動時にカーソル位置が維持されないのを対策する (advice-add 'mc/mark-next-like-this :around (lambda (orig-fun &rest args) (if (mc/last-command-check) (let ((last-command 'next-line)) (apply orig-fun args)) (apply orig-fun args)))) wikiに反映しました。cua-modeのように動きます。mc/cursor-specific-varsの影響は 確認できていませんが、良ければお使いください。 https://www49.atwiki.jp/ntemacs/pages/40.html electric parentheses って皆やってる? やった方が良いって思う自分と邪魔だから要らないって思う自分がせめぎ合ってるんだが 逆に使わない意味がわからない。 ddskk で設定してる emacs --debug-initでemacsを立ち上げると次のようになりました。 エラーが出るのでデバッグモードで立ち上げました。 (show-paren-match-face nil のところなのですが、最初は'#500のように書いていたのをnilにしました。 それでも下のエラーがでるのですが、どのようにすればいいか できれば教えていただけないでしょうか? Debugger entered--Lisp error: (error "Invalid face" show-paren-match-face) internal-set-lisp-face-attribute(show-paren-match-face :background unspecified 0) set-face-attribute(show-paren-match-face nil :background unspecified) set-face-background(show-paren-match-face nil) eval-buffer(#<buffer *load*> nil "/ホームディレクトリ/.emacs.d/init.el" nil t) ; Reading at buffer position 6390 load-with-code-conversion("/ホームディレクトリ/.emacs.d/init.el" "/ホームディレクトリ/.emacs.d/init.el" t t) load("/ホームディレクトリ/.emacs.d/init" t t) #f(compiled-function () #<bytecode 0x4009eced>)() command-line() normal-top-level() 解決しました。 show-paren-match-face nilを (set-face-attribute 'show-paren-match nil :background 'unspecified :underline "turquoise") にしました。 https://typeinf-memo.blogspot.com/2016/06/emacsshow-paren-match-faceremoved.html >>317 それを >>299 の時点で晒せやw ほんとどのような質問をしたら解答を得られやすいかとかまったく考えない人が増えたよね… >>319 質問していいですか?と尋ねたときに イイトモー といってもらえたら載せてたよ。謙譲したんだ >>320 ホント馬鹿だな…エラーの「内容」がわからないとそのエラーを解決することが不可能なことすら理解できないとは… それとお前のどこがへりくだってんだよw へりくだることは、エラーの解決を目標にする人間が他人に協力してもらうための情報提示を惜しむことじゃねえよ(´・ω・`) 口頭なら「質問していいですか」と聞く意味もあるけど、 不特定多数が見る掲示板ではroundtrip一回分無駄に時間を費やすだけで無意味。 出せる情報は始めから全部出して、いきなり質問すべき。 質問の書き方は以下を参照。 ttp://www.hyuki.com/writing/techask.html >>322 こういうのを読ませても理解できないバカなんだから スルーが一番 回答してくれる人達は 質問の仕方も理解してるんだよな… 質問内容を整理している間に自己解決してそうだけども >>323 おまえみたいなきもい奴にはviがお似合い >>324 横レスですまんが君には秀丸がお似合いだな 当たり前の内容が理解できないんだからわかりやすいシステムを使えばよろしい >>321 >>322 ありがとう。今度からはそうします。 秀丸か。秀丸でtex使うといいよと言ってた人、最近お亡くなりになった 【中庸はNG、右か左】 世界教師マ@トレーヤ「新時代を切開くため70億人を2つのグループに分ける」 http://rosie.5ch.net/test/read.cgi/liveplus/1534987219/l50 PCとスマホのモニターを覗いている傍観者のみなさん、腹を決めてください。 emacs で動作する peco コマンドを考えてみた。(epeco) https://github.com/smzht/wsl-utils/blob/master/epeco これはこれで便利なんだけど、入力データをすべて取り込んでからしか動作しない。 本家の peco はデータ入力途中でも絞り込みを開始できる。 この動きを epeco で実現できればさらに便利になるんだけど、なにか良いアドバイスが あれば教えてほしい。 epeco 中では helm を使っているだけど、なんとなく入力するデータを作成するコマンドを helm 側でコントロールできていないと、実現できないような気がしている。でも、epeco に 入っているデータはパイプで流れてくるものだからそれは実現できない。 shell-mode のように comint と絡めればできると思うけど、シェルスクリプトで動作 できるようにコマンドで完結させたい。 helm-recentf はキーワードを半角空白で区切って入力するとどんどん絞り込んでくれるけどそんな感じにしたいってことなのかな? それは今のバージョンでも実現できている。やりたいのは、epeco にパイプでつなげる コマンドが終了する前に helm が起動して絞り込みをできるようにしたい。 helm-build-async-source 辺りを使えばできそうなきもするんだけど、helm の知識が 足りなくてうまく行っていない。なんとなく、パイプで流れてくるストリームを非同期 で処理するのはできないのかなぁと思ったりしている。 関係ないけど昔、YaTeXのサイトに秀丸用にポートしてた人の追悼文か何か 載ってなかったっけ。 >>330 とりあえずテストコード書いてみた。 https://gist.github.com/smzht/9fdb573297bb11937a96fc94d81e001f query文字列を入れるとコマンドが再実行されることと絞り込みが効かなところ から調べてみる。 非同期バージョンの原型できた。 https://gist.github.com/smzht/0e4886b8857fe028d24388b8c70462e3 以下でテストできる。 while :; do date; sleep 1; done | epeco-test-2 さらに直したいところ。 ・migemoが不安定(現在は使わないようにしている) ・epecoが終了しても入力元のコマンドが終了していなとコマンド全体が終わらない (割り込みで終える必要がある) もう少し。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる