web-dev-qa-db-ja.com

TextWrangler:行を上下に移動するためのホットキー

Eclipseでは、Alt-(矢印)を押して行を上下に移動できます。

TextWranglerでこれらのホットキー機能を発見した人はいますか?

11
Peter K.

Mac OSXの場合は ctrl+ または ctrl+

2つのキーボードストロークが事前設定されているため、(システム環境設定で)MissionControlホットキー設定を変更する必要がある場合があります。

4
Tim

TextWranglerにはこれが組み込まれているとは思いません。

ただし、TextWranglerでapplescriptを実行できるので、これを機能させることができます。私も見つけました いくつかのapplescripts これを行うでしょう。

AppleScriptでBBEditをTextWranglerに置き換える必要があります。スクリプトを「〜/ Library/ApplicationSupport/TextWrangler/Scripts /」に配置すると、TextWranglerのスクリプトメニューに表示されます。 [ウィンドウ]-> [パレット]-> [スクリプト]をクリックして、カスタムキーボードショートカットを設定できるスクリプトパレットを表示します。

2
Nathan Grigg

手動文字の交換および単語の交換)。


TextWranglerがCocoaText Systemをサポートしている場合(サポートしていないと思いますが、それでも)、ファイル~/Library/Keybindings/DefaultKeyBinding.dictを作成して、次のように入力できます。

{
    "~\UF701" = (
        "moveToBeginningOfLine:",
        "deleteToEndOfLine:",
        "deleteForward:",
        "moveDown:",
        "yank:",
        "insertNewline:",
        "moveUp:"
    );
}

これにより、Cocoaテキストシステムをサポートするすべてのアプリケーションに、行交換コマンドのショートカットOpt-DownArrow(以下の行を含む)が追加されます。

2
Daniel Beck

nathangsソリューションはかなりうまく機能します。しかし、提供されたリンクはもう機能しません。プレーンテキストとしてのスクリプトは次のとおりです。それらを「AppleScriptEditor」に貼り付けて、〜/ Library/Application Support/TextWrangler/Scripts /に保存するだけです。

MountainLionおよびTextWrangler4で正常に動作します。

MoveLineDown.scpt:

tell application "TextWrangler"
    set x to startLine of selection
    tell text 1 of window 1
        if x = (count of lines) then return
        set myline to contents of line x
        delete line x
        if length of line x = 0 then
            make line at line x with data "
"
            make line at line (x + 1) with data myline
        else
            make line at line x with data myline

        end if
        select insertion point before line (x + 1)
    end tell
end tell

MoveLineUp.scpt:

tell application "TextWrangler"
    set x to startLine of selection
    if x = 1 then
        beep
        return
    end if
    tell text 1 of window 1
        set oldCount to count of lines
        set myline to contents of line x
        delete line x
        if x = 2 then
            if length of line 1 = 0 then
                make line at beginning with data "
"
            end if
            make line at beginning with data myline
        else
            if length of line (x - 2) = 0 then
                make line at line (x - 2) with data "
"
                make line at line (x - 1) with data myline
            else
                make line at line (x - 2) with data myline
            end if
        end if
        select insertion point before line (x - 1)
    end tell
end tell
0
Klaas