GUI環境でテキストを自在に操作する

以下、二つのテキストファイルを開いている環境において、テキスト操作の方法いろいろ。(テキストエディット.appを使用)

  • folder_1.txt
applications folder
desktop
documents folder
  • folder_2.txt
アプリケーションフォルダ
デスクトップ
書類フォルダ

テキストを縦に繋げる(文章末に挿入する)

applications folder
desktop
documents folder
アプリケーションフォルダ
デスクトップ
書類フォルダ
  • folder_2.txt全体を、すべて選択してコピー、
  • folder_1.txtの先頭にペースト。


コマンドだと...

$ cat folder_1.txt folder_2.txt
applications folder
desktop
documents folder
アプリケーションフォルダ
デスクトップ
書類フォルダ

テキストを横に繋げる(行ごとに挿入する)

applications folderアプリケーションフォルダ
desktopデスクトップ
documents folder書類フォルダ
  • folder_2.txt全体を、optionキーを押しながら(文字カーソルが十字になる)マウスで範囲選択してコピー、
  • folder_1.txtの1行目の行末にペースト。
applications folder アプリケーションフォルダ
desktop             デスクトップ          
documents folder    書類フォルダ          
  • 新規テキスト書類を作成して、適当なスペースで満たされた3行を追記する。
  • folder_1.txt全体を、optionキーを押しながら(文字カーソルが十字になる)マウスで範囲選択してコピー、
  • 新規テキスト書類の先頭にペースト。
  • folder_2.txt全体を、optionキーを押しながら(文字カーソルが十字になる)マウスで範囲選択してコピー、
  • 新規テキスト書類の1行目のapplications folder に続けてペースト。


コマンドだと...

$ paste folder_1.txt folder_2.txt
applications folder	アプリケーションフォルダ
desktop	デスクトップ
documents folder	書類フォルダ
  • タブで区切られて、横に繋がった。

テキストをクリックする操作

クリック
  • クリックした位置にテキストカーソルを移動する。
  • ダブルクリック
  • クリックした位置の単語を選択する。
  • トリプルクリック
  • クリックした位置の1行全体を選択する。
  • shiftキーを押しながらクリック
  • 直前の文字カーソル位置から、shift-クリックした位置まで選択する。
  • 直前のカーソル位置がダブルクリックで単語選択されていると、shift-クリックした位置の単語まで選択される。(便利!!)

  • 適当なスペースで満たされた行を素早く作成するには...

    • 1行目に40個のスペースを入力して改行。
    • 1行目をトリプルクリックして、コピー。
    • 2行目をクリックして、ペーストを必要なだけ繰り返すと、素早くスペースで満たされたテキストが出来上がる。

    任意の列だけ抽出する

    • ブログに記載されたコード中のプロンプトマーク"$"や行番号を邪魔に感じることもある。
    • code.txt
    $ sudo port selfupdate
    $ sudo port install rtmpdump
    $ sudo port install ffmpeg
    
    • 有効なコマンド部分だけコピーしたい場合は...
      • ブラウザではoptionキーを押しながらマウスで範囲選択が利かないので、一旦テキストエディタにコード全体をコピーする。
      • その後、欲しい範囲をoptionキーを押しながらマウスで範囲選択してコピーすればOK。(テキストを横に繋げるのと同じ要領)
    sudo port selfupdate
    sudo port install rtmpdump
    sudo port install ffmpeg
    


    コマンドだと...

    $ cut -d' ' -f2- code.txt
    sudo port selfupdate
    sudo port install rtmpdump
    sudo port install ffmpeg
    

    置き換え

    • command-Fで検索ウィンドウを表示すれば、文字列の置き換えもできる。
    • 単語を選択してcommand-Eすると、検索文字列にその単語が設定される。
    • 置換文字列を空欄にすれば、条件に一致した文字列の削除もできる。
    • 上記のプロンプトマークの例なら、検索文字列に"$ "、置換文字列を空欄にして、すべて置き換えを実行すると"$ "が消えた。

    sudo port selfupdate
    sudo port install rtmpdump
    sudo port install ffmpeg
    


    コマンドだと...

    $ sed 's/$ //' code.txt
    sudo port selfupdate
    sudo port install rtmpdump
    sudo port install ffmpeg
    

    正規表現による検索

    • テキストエディット.appによる置き換えでは、文字列の部分一致・前方一致・完全一致しか検索条件を設定できない。
    • しかし、一般的な文字列だけでは実現できない検索処理をしたい欲求も、いずれ湧いてくる。
      • 例:folder_1.txtの各行の先頭に-記号を挿入したいとか。(はてな記法でリスト扱いになる)
    • そんな時、正規表現検索が可能なCotEditor.appがあると、欲求はかなり満たされる。
      • 例:検索:^、置換:-、一括置換ボタンを押して完了。素晴らしい満足感を得られる。

     -applications folder
     -desktop
     -documents folder
    


    コマンドだと...

     $ sed 's/^/-/' folder_1.txt
     -applications folder
     -desktop
     -documents folder
    

    任意の行だけ抽出する

    • grepに対応するGUI操作がないなと思っていたら、表計算ソフトウェアを使えば良いと思い付いた。(NeoOfficeを利用した)
    • 例:folder_1.txtについて「folder」を含む行だけ抽出する。

    applications folder
    documents folder
    


    コマンドだと...

    $ grep 'folder' folder_1.txt 
    applications folder
    documents folder
    

    ターミナル

    • optionキーを押しながらマウスで範囲選択は、ターミナルでも利用できる。
    • optionキーを押しながらクリックで、クリックした位置にカーソル移動。(コマンド入力行で)

    また、ターミナルで特に便利を感じる操作...(テキストエディットおよびCocoa系テキスト編集環境でも有効なキー操作)

    • control-A・control-E
      • 行頭・行末へカーソル移動
    • control-K・control-Y
      • カーソル位置から行末までカット・ペースト
    • control-H・control-D
      • カーソル左側の1文字を削除・カーソル右側の1文字を削除

    キー操作

    その他のキー操作については、以前の日記が参考になるかもしれない。


    以上、まとまりがなくなってしまったが、以下の記事に感化されてGUI環境でどこまでできるのか試してみたのであった。

    結局、たとえGUI環境といえども、正規表現を使い出すとコマンドを実行するのと何ら変わらない知識が必要なのであった。GUIを使い込んでいくと、CUIに回帰するという現象がここでも発生した。