sakura icon indicating copy to clipboard operation
sakura copied to clipboard

ターミナルを組み込んで欲しい

Open 7-rate opened this issue 5 years ago • 5 comments

要望機能

Visual Studio Codeにはエディタ内にターミナルが組み込んであります。 何かを開発しているときにエディタからビルドコマンドを叩いたりと、ターミナルがついていると色々便利です。 同等の機能がサクラエディタにも欲しいです。

スクリーンショット

2020-02-20_22h08_10

7-rate avatar Feb 20 '20 13:02 7-rate

いいですね。GOで。

次アクション>

  1. とりあえずテキトーに実装してみたぜ!ヒャッハーとPR出してみる。
  2. どうしたら実現できるか意見を募ってみる。

experimental ブランチを切るときがきたのかもしんない・・・。

berryzplus avatar Feb 20 '20 15:02 berryzplus

参考までに、Vimの端末機能は ConPTY または winpty と libvterm を組み合わせることで実現されています。

k-takata avatar Feb 21 '20 01:02 k-takata

せっかく参考情報(キーワード)をいただいたのでリンク貼っときます。

conpty は最新技術 なので、とりあえず見送る感じになるのかな?と思っていますが、あえて windows10 pro 1909 以降のみ対応 として作ってしまうのも面白いかも知れません。

サクラエディタに導入する場合の課題はいくつかあります。

  • console の所有権とウインドウの関連をどうするか?
    タブモードのON/OFF状態をどうするかによって見方が変わると思います。
  • 接続先のシェルexeとして、標準(CMD.exe)の他多数の選択肢(pwsh.exe、bash.exe、powershell.exeなど)があります。
    実行モジュールごとに設定を分けられる構造にする必要に迫られそうな気がします。
    対象の数が多いので動作確認が死ぬほどウザそうです。
  • 既存機能「外部コマンド実行」との兼ね合いがビミョーです。
  • 既存機能「アウトプットウインドウ」との兼ね合いがビミョーです。

berryzplus avatar Feb 21 '20 17:02 berryzplus

ConPTY が使えるようになったのは Win 10 1809 以降です。 ConPTY は 24bit 色が扱えるという利点があります。(winpty は 16 色のみ) 一方で、ambiguous width な文字の扱いに難があります。

k-takata avatar Feb 21 '20 23:02 k-takata

既存の「外部コマンド実行」は、出力結果をエディタ内に取り込むという「要件」があるかと思います。

「ターミナル」はコンソールを内部で取り込んでコマンドを実行するということかと思いますが、 後者の要件は私はCMD.EXE他を単独で実行することで実現しています(代替え可能)

もし、コンソールをテキストエディタの内部で持つ場合、出力結果をうまく取り込めるとか、編集中のテキストをうまくコンソールへ反映させるような機能があると、内部にもつ意義があるかなと思います。

内部で持つ場合には、なるべく既存のexeが肥大化しない仕組みがあるとか、一からカーソル移動等を実装しなくてもよい(なるべく外部モジュールへ任せられる)方向に倒したいなとおもいます。 そういう仕組みがあればですが。

ターミナルをゼロからくみ上げるのは結構骨が折れそうなので。

KENCHjp avatar Feb 24 '20 08:02 KENCHjp