情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

AutoHotkeyで、ちょっと高機能な「行頭へカーソルを移動」を作ってみる このエントリーを含むはてなブックマーク

インデントされている文章を編集しているときに、Homeキーなどで単純に行頭へカーソルを移すと、本当に編集したい"行頭"までTabやスペースの分だけ右に移動しなければなりません。今回は、インデントのTabやスペースを認識して、その手前まで移動するホットキー「行頭へカーソルを移動」を、AutoHotkeyを利用して作成します。また、それを通して、AutoHotkeyを利用するときのコツを紹介します。

文字列の内容を知るためには、コピーするしかない

今回は、Tabや半角スペースの存在をAutoHotkeyScriptが認識しなくてはいけません。このように、カーソル付近の文章を認識するためにはその内容をクリップボードにコピーして、それを読み込む必要があります

このとき、現在のクリップボードの内容を一時的に退避して、作業が終わったら戻す必要があります。実は、この作業には、いくつかの注意すべきポイントがあります。

選択範囲の内容を読み取る方法

行頭へ移動するホットキーを作る前段階として、選択した文字を変数に格納してみます

カーソルの一文字左を読み取るコードは次のようになります。

^j::
	; クリップボードの内容を退避
	clipboard_backup = %ClipboardAll%

	: 選択
	Send +{Left}

	; コピー
	Clipboard = ; クリップボードを空にする
	Send ^c     ; 実際のコピーコマンド
	ClipWait, 1 ; コピー完了まで待機

	; 変数へクリップボードの内容を格納
	selected := Clipboard

	; 表示
	msgbox, %selected%

	; クリップボードの内容を復元
	Clipboard := clipboard_backup

	Return

見ての通り、結構長くなります。ただ、この中に注意すべき点がたくさんあるのです。以下、注意点を一つ一つ説明しておきます。

クリップボードの内容を退避と復元で利用する変数が違う

ClipboardAll変数は、退避のために利用する変数です。このコードのように「ClipboardAll」変数を利用して、バックアップ先の変数に退避してクリップボードを使う作業を終えたら、今度は「Clipboard」変数にその内容を代入します。ここで、ClipboardAllに代入しても無意味です。ClipboardAll変数は、退避専用の変数です

ClipWaitを利用するために、コピーの前にClipboardを空にする

「Send ^c」の前に、「Clipboard =」でClipboard変数の中身を空にしています。これをしないと、次に紹介するClipWaitコマンドが意図した動作をしてくれません。かならずコピーの前にはClipboard変数をクリアしておきましょう。

コピーの完了をClipWaitで確認する

選択範囲のコピーの実際は、単なる「Send ^c」です。つまり、このキー入力を受け取ったアプリケーションがクリップボードに選択範囲の文字列を格納してくれるということを意味します。つまり、「Send ^c」をした直後、すぐクリップボードの内容が更新されているわけではなく、コピーの完了を待たなければならないということです。そこで利用するのが「ClipWait」コマンドです。

「ClipWait, 1」では、最大1秒、クリップボードの更新を待ちます。このとき、実際には、テキストとして読み取れる内容になることを待つので、あらかじめ内容をクリアしておく必要があるわけです。

クリップボードの内容を利用するときはClipboard変数

クリップボードの内容を利用するときは、「ClipboardAll変数」ではなく、「Clipboard変数」を利用してください。ClipboardAllを使って読み出しても、テキストとして利用できません。

行頭へ移動ホットキー(低速版)

では、選択範囲の読み出し方法が分かったところで、実際に目的のホットキーの実装を行います。今回は、とりあえず行頭までジャンプして、右隣がTabか半角スペースだったらひとつ移動するようにしてみます。

実際のコードは次のようになります。

^j::
	; 退避
	clipboard_backup = %ClipboardAll%

	; 先頭へ移動
	Send {Home}

	; カーソル位置の修正用ループ
	Loop {
		; カーソルの一つ右の文字を読み取る
		Send +{Right}
		Clipboard :=
		Send ^c
		ClipWait, 1
		selected := Clipboard

		; インデント文字かどうかで分岐
		If (selected = " " || selected = "`t") {
			Send {Right} ; 次の文字へ
		} Else {
			; 選択を解除して抜ける
			Send {Left}
			Break
		}
	}

	; 復元
	Clipboard := clipboard_backup

	Return

このコードは、とりあえず目的のとおり動きます環境、特にアプリケーション次第でうまくいかないかもしれません。今はとりあえずTeraPadで試しています。ただ、半角スペース8つなどのインデントで試しに実行してみると、まるでスローモーションです。

この原因のひとつは、コピー回数が多いことです。

行頭へ移動ホットキー(中速版)

次に紹介するコードは、コピー回数を減らしたバージョンです。

^j::
	; 退避
	clipboard_backup = %ClipboardAll%

	; 先頭まで選択
	Send +{Home}

	; 選択範囲を読み取る
	Clipboard :=
	Send ^c
	ClipWait, 1
	selected := Clipboard

	; クリップボードの内容を復元
	Clipboard := clipboard_backup

	; 選択範囲一文字ずつに対してループ
         Loop % StrLen(selected) {
		; 左から順番に一文字取り出す
		c := SubStr(selected, A_Index, 1)
		
		; インデント文字かどうかで分岐
		If (c = " " || c = "`t") {
			Send +{Right} ; 選択範囲を狭めて次の文字へ
		} Else {
			Break ; 終了
		}
	}

	; 選択を解除
	Send {Left}
	Return

これでも十分遅いのですが、前のバージョンよりは速くなっています。このように、できるだけClipWaitで待つ時間を小さくした方がよいと思われます。ちなみに、今回のバージョンで最後の「Send {Left}」をコメントアウトすると、「先頭まで選択」ができます。

もっと速くするためには

実は、遅い原因の大部分はカーソル移動時間です。一文字ずつカーソルを移動させる限り、カーソル移動にかかる時間がどうしても削れません。そこで、「Ctrl+→」などを使って移動すればもっと高速化できるのですが、アプリケーションの依存度が高く、アプリケーションごとにどこまで移動するかが変わってしまうため、ちょっと微妙です。参考として、少し動作が変わってしまいますが(メモ帳ですら不適合で、TeraPadでわりと意図したとおり動いたという程度)、その一例を載せておきます。

^j::
	; 退避
	clipboard_backup = %ClipboardAll%

	; 先頭まで選択
	Send +{Home}

	; 選択範囲を読み取る
	Clipboard :=
	Send ^c
	ClipWait, 1
	selected := Clipboard

	; クリップボードの内容を復元
	Clipboard := clipboard_backup

	; 先頭の一文字を取り出す
	c := SubStr(selected, 1, 1)

	; インデント文字かどうかで分岐
	If (c = " " || c = "`t") {
		Send ^+{Right} ; 単語単位の移動を利用して移動
	}

	; 選択を解除
	Send {Left}
	Return

これは、「先頭までを選択」が行いやすいバージョンで、次は、行全体の選択を避けたバージョンです。

^j::
	; 退避
	clipboard_backup = %ClipboardAll%

	; カーソルが先頭になるように、
	; 先頭一文字を選択
	Send {Home}{Right}+{Home}

	; 選択範囲を読み取る
	Clipboard :=
	Send ^c
	ClipWait, 1
	selected := Clipboard

	; クリップボードの内容を復元
	Clipboard := clipboard_backup

	; 先頭の一文字を取得
	c := selected

	; インデント文字かどうかで分岐
	If (c = " " || c = "`t") {
		Send ^{Right} ; 単語単位の移動を利用して移動
	} Else {
		Send {Left}
	}
	Return

まとめ

AutoHotkeyを使うとこんな感じで作業を自動化できますよ、という紹介にはなったと思います。ただ、そんなことより重要なのは、Clipboardの使い方です。いろいろ注意点が多いので、気を付けてください。

スポンサーサイト
AutoHotkey | コメント:0 | トラックバック:0 | 編集

TeXのスタイルファイルを適用してもLandscapeにならないとき 対策2 このエントリーを含むはてなブックマーク

TeXのスタイルファイルを適用してもLandscapeにならないとき」で、landscape(紙の向きが横)のスタイルを使用しているはずなのにpdfが横にならないという問題を取り上げ、dvipdfmxに「-l」オプションを付ける対策を紹介しました。

これは、「dvipdfmx」を利用したことがやはり原因のようで、オプション以外にも対策があるようなのでメモ。

対策

対策法は簡単で、「\begin{document}」より前に

\AtBeginDvi{\special{landscape}}

という行を追加するだけです。お試しあれ。

LaTeX2ε美文書作成入門
独習 LaTeX2ε
LATEXはじめの一歩―Windows Vista/XP対応

TeX | コメント:0 | トラックバック:0 | 編集

AutoHotkeyでOneNoteに使いやすいショートカットキーを設定するための資料 このエントリーを含むはてなブックマーク

AutoHotkeyでOneNoteのショートカットキーを変更する

今回の目的は、OneNoteをより使いやすくすること。その具体的な方法は ショートカットキーの変更です。ただし、Officeは基本的にショートカットキー の変更が出来ないようですWordは 出来るみたい。たとえば、カーソルの移動をショートカットキーで行ったり、 OneNoteの複雑なショートカットキーを統一したりすることがOneNoteそのもの では出来ません。そこで、今回利用したのが「AutoHotkey」です。 インストール方法は「AutoHotkeyのインストールト.ahkファイルの使い方」の通り 何も難しくありません。

とりあえずOneNote2010にあるショートカットキーを網羅することが重要

AutoHotkeyのキーボードの入力を変換するという性質上、 キーボードで出来る範囲のことしか再現できないと言えます。 しかし、OneNoteにはたくさんの「キーボードで出来ること」が あります。ただし、何があるかよく分からないので、とりあえず網羅してみました、 というのがこのエントリの最後に貼ってあるOneNote2010.ahkです。

OneNote2010.ahkでは、 OneNote2010のヘルプファイルに含まれるショートカットキーほぼすべてと、 リボンを経由して利用できるショートカットという、OneNoteならではの ショートカットキーを網羅的に書きました。

OneNote2010.ahkの簡単な見方

AutoHotkeyに詳しい人は「見てください」で終わるのですが、 AutoHotkeyを知らない人向けに少し解説をすると、 セミコロンで始まる行それぞれが一つのショートカットキーを表しています。 そして、それぞれ3つの部分から構成されており、 最初がスクリプト本体、真ん中がデフォルトのキー、最後が説明文(日本語)です。 たとえば、

; ^m::Send ^m ; Ctrl+M ; 新しいOneNoteウィンドウを開きます

は、「^m::Send ^m」がスクリプト本体、「Ctrl+M」がデフォルトのキー、 「新しいOneNoteウィンドウを開きます」が説明文です。 では、「新しいOneNoteウィンドウを開く」を、「Ctrl+N」にしたいときどうすればよいかを説明します。

設定方法

ここで説明するのはAutoHotkeyの本当に基本的な機能を利用した方法です AutoHotkeyはつい数日前に使ってみたばかりなので、 このスクリプト自体書き方変かもしれないです。 上の例の「新しいOneNoteウィンドウを開く」を、「Ctrl+N」にする方法を書きます。

まず、「::」より前をすべて消してください。そして、「::」の前に新しく「^n」と入力して 保存します。これだけです。OneNote2010.ahkをダブルクリックしてAutoHotkeyを 起動すると、ショートカットキーが設定されているはずです。

今回は「^n」で「Ctrl+N」を設定しましたが、「!n」なら「Alt+N」、「#n」なら 「Win+N」、「!+n」とすれば「Ctrl+Shift+N」が設定できます。 AutoHotkey自体に関して詳しくは付属するHelpもしくは 「流行らせるページ跡地」からダウンロードできるhtmlファイルが詳しいです。

注意

AutoHotkeyは、ショートカットに設定したいキーを、 OneNoteに元から存在するショートカットキーに変換することにより、 ショートカットキーの設定が実現されています。 たとえば、先ほどの例では「Ctrl+N」という入力が「Ctrl+M」に変換されて OneNoteに渡されているため、「Ctrl+N」の入力に対して「Ctrl+M」 と同じ動作が実行されるわけです。したがって、「Ctrl+M」という入力でも 引き続き「新しいOneNoteウィンドウを開く」が実行されます。

同様に、ウィンドウによって同じショートカットキーでも異なる動作をする場合があります。 しかし、AutoHotkeyはそんなこと関係なく動作するため、その点に関しては 注意する必要があります。

OneNote2010.ahk

ただのテキストなので、ここにべたっと貼り付けておきます。 コピーして「OneNote2010.ahk」という名前で保存してください。 ちなみに、長すぎる説明は短くしてあります。

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

SetTitleMatchMode,2

#IfWinActive - Microsoft OneNote ahk_class Framework`::CFrame

; ==============================
; ノートを作成して書式設定する
; ==============================

	; ------------------------------
	; ノートを入力して編集する
	; ------------------------------
;	^m::Send ^m	; Ctrl+M	; 新しいOneNoteウィンドウを開きます
;	^+m::Send ^+m	; Ctrl+Shift+M	; 小さいOneNoteウィンドウを開いて、ミニノートを作成します。
;	^!d::Send ^!d	; Ctrl+Alt+D	; OneNoteのウィンドウをドッキングします。
;	^z::Send ^z	; Ctrl+Z	; 直前の操作を元に戻します。
;	^y::Send ^y	; Ctrl+Y	; 直前の操作を繰り返します。
;	^a::Send ^a	; Ctrl+A	; 現在のページのすべてのアイテムを選択します。
;	^x::Send ^x	; Ctrl+X	; 選択したテキストまたはアイテムを切り取ります。
;	^c::Send ^c	; Ctrl+C	; 選択したテキストまたはアイテムをクリップボードにコピーします。
;	^v::Send ^v	; Ctrl+V	; クリップボードの内容を貼り付けます。
;	Home::Send {Home}	; Home	; 行の先頭に移動します。
;	End::Send {End}	; End	; 行の末尾に移動します。
;	Left::Send {Left}	; ←	; 左に1文字分移動します。
;	Right::Send {Right}	; →	; 右に1文字分移動します。
;	^Left::Send ^{Left}	; Ctrl+←	; 左に1単語分移動します。
;	^Right::Send ^{Right}	; Ctrl+→	; 右に1単語分移動します。
;	BS::Send {BS}	; BackSpace	; 左にある文字を1文字削除します。
;	Del::Send {Del}	; Del	; 右にある文字を1文字削除します。
;	^BS::Send ^{BS}	; Ctrl+BackSpace ; 左にある1単語を削除します。
;	^Del::Send ^{Del}	; Ctrl+Del	; 右にある1単語を削除します。
;	+Enter::Send +{Enter}	; Shift+Enter	; 新しい段落を開始せずに改行を挿入します。
;	F7::Send {F7}	; F7	; スペルチェックを行います。
;	+F7::Send +{F7}	; Shift+F7	; 現在選択されている単語の類義語辞典を開きます。
;	+F10::Send +{F10}	; Shift+F10	; コンテキストメニューを表示します。
;	^+w::Send ^+w	; Ctrl+Shift+W	; ページの上部の情報バーに表示されたアクションを実行します。
	
	; ------------------------------
	; ノートの書式を設定する
	; ------------------------------
;	^+h::Send ^+h	; Ctrl+Shift+H	; 選択したテキストを黄色で強調表示します。
;	^!h::Send ^!h	; Ctrl+Alt+H	; (同上)
;	^k::Send ^k	; Ctrl+K	; ハイパーリンクを挿入します。
;	^+c::Send ^+c	; Ctrl+Shift+C	; 選択したテキストの書式をコピーします(書式のコピー/貼り付け)。
;	^+v::Send ^+v	; Ctrl+Shift+V	; 選択したテキストに書式を貼り付けます(書式のコピー/貼り付け)。
;	Enter::Send {Enter}	; Enter	; ハイパーリンクを開きます。
;	^b::Send ^b	; Ctrl+B	; 選択したテキストに太字を適用します。
;	^i::Send ^i	; Ctrl+I	; 選択したテキストに斜体を適用します。
;	^u::Send ^u	; Ctrl+U	; 選択したテキストに下線を適用します。
;	^-::Send ^-	; Ctrl+-	; 選択したテキストに取り消し線を適用します。
;	^+`;::Send ^+`;	; Ctrl+Shift+;	; 選択したテキストに上付き文字を適用します。 ※1
;	^`;::Send ^`;	; Ctrl+;	; 選択したテキストに下付き文字を適用します。 ※1
;	^.::Send ^.	; Ctrl+.	; 選択した段落に箇条書きを適用します。
;	^/::Send ^/	; Ctrl+/	; 選択した段落に段落番号を適用します。
;	^!1::Send ^!1	; Ctrl+Alt+1	; 現在のノートに見出し1スタイルを適用します。
;	^!2::Send ^!2	; Ctrl+Alt+2	; 現在のノートに見出し2スタイルを適用します。
;	^!3::Send ^!3	; Ctrl+Alt+3	; 現在のノートに見出し3スタイルを適用します。
;	^!4::Send ^!4	; Ctrl+Alt+4	; 現在のノートに見出し4スタイルを適用します。
;	^!5::Send ^!5	; Ctrl+Alt+5	; 現在のノートに見出し5スタイルを適用します。
;	^!6::Send ^!6	; Ctrl+Alt+6	; 現在のノートに見出し6スタイルを適用します。
;	^+n::Send ^+n	; Ctrl+Shift+N	; 現在のノートに標準スタイルを適用します。 ※2
;	!+Right::Send !+{Right}	; Ctrl+Alt+→	; 段落を左からインデントします。
;	!+Left::Send !+{Left}	; Ctrl+Alt+←	; 段落のインデントを左から削除します。
;	^r::Send ^r	; Ctrl+R	; 選択した段落を右揃えで配置します。
;	^l::Send ^l	; Ctrl+L	; 選択した段落を左揃えで配置します。
;	^+>::Send ^+>	; Ctrl+Shift+>	; 選択したテキストのフォントサイズを大きくします。
;	^+<::Send ^+<	; Ctrl+Shift+<	; 選択したテキストのフォントサイズを小さくします。
;	^+n::Send ^+n	; Ctrl+Shift+N	; 選択したテキストに適用されているすべての書式をクリアします。 ※2
;	^+r::Send ^+r	; Ctrl+Shift+R	; 現在のページの罫線の表示/非表示を切り替えます。

	; ------------------------------
	; ページにアイテムを追加する
	; ------------------------------
;	::Send !nf	; Alt+N,F	; 現在のページにドキュメントまたはファイルを挿入します。
;	::Send !no	; Alt+N,O	; 現在のページにドキュメントまたはファイルの印刷イメージを挿入します。
;	!+p::Send !+p	; Alt+Shift+P	; 現在のページ上のドキュメントの印刷イメージを表示または非表示にします。
;	::Send !np	; Alt+N,P	; ファイルから図を挿入します。
;	::Send !ns	; Alt+N,S	; スキャナーまたはカメラから図を挿入します。
;	#s::Send #s	; Win+S	; 画面の領域を挿入します。
;	!+d::Send !+d	; Alt+Shift+D	; 現在の日付を挿入します。
;	!+f::Send !+f	; Alt+Shift+F	; 現在の日付と時刻を挿入します。
;	+Enter::Send +{Enter}	; Shift+Enter	; 改行を挿入します。
;	!`;::Send !`;	; Alt+;	; 方程式を開始します。または、選択したテキストを方程式に変換します。
;	Tab::Send {Tab}	; Tab	; すでに入力されたテキストに2番目の列を追加してテーブルを作成します。
;	Tab::Send {Tab}	; Tab	; 1行のテーブルに1列作成します。
;	Enter::Send {Enter}	; Enter	; テーブルの末尾のセルに位置しているときに1列作成します。
;	^Enter::Send ^{Enter}	; Ctrl+Enter	; テーブルの現在の行の下に1行作成します。
;	!Enter::Send !{Enter}	; Alt+Enter	; テーブルの同じセル内に別の段落を作成します。
;	^!r::Send ^!r	; Ctrl+Alt+R	; テーブルの現在の列の右側に1列作成します。
;	^!e::Send ^!e	; Ctrl+Alt+E	; テーブルの現在の列の左側に1列作成します。
;	Enter::Send {Enter}	; Enter	; テーブルの現在の行の上に1行作成します。
;	::Send {Del}{Del}	; Del,Del	; テーブルの現在の空の行を削除します。

	; ------------------------------
	; ノートとオブジェクトを選択する
	; ------------------------------
;	^a::Send ^a	; Ctrl+A	; 現在のページのすべてのアイテムを選択します
;	+End::Send +{End}	; Shift+End	; 行の末尾まで選択します
;	+Down::Send +{Down}	; Shift+↓	; 行全体を選択します
;	^+t::Send ^+t	; Ctrl+Shift+T	; ページのタイトルにジャンプし、タイトルを選択します。
;	Esc::Send {Esc}	; Esc	; 現在のアウトラインまたはページの選択を取り消します。
;	!+Up::Send !+{Up}	; Alt+Shift+↑	; 現在の段落または選択されている複数の段落を上に移動します。
;	!+Down::Send !+{Down}	; Alt+Shift+↓	; 現在の段落または選択されている複数の段落を下に移動します。
;	!+Left::Send !+{Left}	; Alt+Shift+←	; 現在の段落または選択されている複数の段落を左に移動します。
;	!+Right::Send !+{Right}	; Alt+Shift+→	; 現在の段落または選択されている複数の段落を右に移動します。
;	^+-::Send ^+-	; Ctrl+Shift+-	; 現在の段落とその下位レベルの段落を選択します。
;	Del::Send {Del}	; Del	; 選択したノートまたはオブジェクトを削除します。
;	Home::Send {Home}	; Home	; 行の先頭に移動します。
;	End::Send {End}	; End	; 行の末尾に移動します。
;	Left::Send {Left}	; ←	; 左に1文字分移動します。
;	Right::Send {Right}	; →	; 右に1文字分移動します。
;	!Left::Send !{Left}	; Alt+←	; 直前に開いたページに戻ります。
;	!Right::Send !{Right}	; Alt+→	; 次に開いたページに進みます。
;	^!p::Send ^!p	; Ctrl+Alt+P	; 選択したオーディオまたはビデオ録画の再生を開始します。
;	^!s::Send ^!s	; Ctrl+Alt+S	; 選択したオーディオまたはビデオ録画の再生を停止します。 ※3
;	^!y::Send ^!y	; Ctrl+Alt+Y	; 現在のオーディオまたはビデオ記録を数秒巻き戻します。
;	^!u::Send ^!u	; Ctrl+Alt+U	; 現在のオーディオまたはビデオ記録を数秒早送りします。

	; ------------------------------
	; ノートにシールを付ける
	; ------------------------------
;	^1::Send ^1	; Ctrl+1	; ノート シール (タスク) を適用、マーク、またはクリアします。
;	^2::Send ^2	; Ctrl+2	; ノート シール (重要) を適用またはクリアします。
;	^3::Send ^3	; Ctrl+3	; ノート シール (質問) を適用またはクリアします。
;	^4::Send ^4	; Ctrl+4	; ノート シール (要確認) を適用またはクリアします。
;	^5::Send ^5	; Ctrl+5	; ノート シール (定義) を適用またはクリアします。
;	^6::Send ^6	; Ctrl+6	; ユーザー設定のノート シールを適用またはクリアします。
;	^7::Send ^7	; Ctrl+7	; ユーザー設定のノート シールを適用またはクリアします。
;	^8::Send ^8	; Ctrl+8	; ユーザー設定のノート シールを適用またはクリアします。
;	^9::Send ^9	; Ctrl+9	; ユーザー設定のノート シールを適用またはクリアします。
;	^0::Send ^0	; Ctrl+0	; 選択したノートからすべてのノート シールを削除します。

	; ------------------------------
	; アウトラインを使用する
	; ------------------------------
;	!+1::Send !+1	; Alt+Shift+1	; レベル1まで表示します。
;	!+2::Send !+2	; Alt+Shift+2	; レベル2まで表示します。
;	!+3::Send !+3	; Alt+Shift+3	; レベル3まで表示します。
;	!+4::Send !+4	; Alt+Shift+4	; レベル4まで表示します。
;	!+5::Send !+5	; Alt+Shift+5	; レベル5まで表示します。
;	!+6::Send !+6	; Alt+Shift+6	; レベル6まで表示します。
;	!+7::Send !+7	; Alt+Shift+7	; レベル7まで表示します。
;	!+8::Send !+8	; Alt+Shift+8	; レベル8まで表示します。
;	!+9::Send !+9	; Alt+Shift+9	; レベル9まで表示します。
;	!+9::Send !+0	; Alt+Shift+0	; すべてのレベルを表示します。
;	Tab::Send {Tab}	; Tab	; インデントを1レベル上げます。
;	+Tab::Send +{Tab}	; Shift+Tab	; インデントを1レベル下げます。
;	!+;::Send !+;	; Alt+Shift++	; 折りたたまれているアウトラインを展開します。
;	!+-::Send !+-	; Alt+Shift+-	; 展開されているアウトラインを折りたたみます。

	; ------------------------------
	; 言語を設定する
	; ------------------------------
;	^LShift::Send ^{LShift}	; Ctrl+左Shift	; 記述方向を左から右に設定します。
;	^RShift::Send ^{RShift}	; Ctrl+右Shift	; 記述方向を右から左に設定します。
;	Tab::Send {Tab}	; Tab	; 右から左に記述するテキストのインデントを 1 レベルずつ上げます。
;	+Tab::Send +{Tab}	; Shift+Tab	; 右から左に記述するテキストのインデントを 1 レベルずつ下げます。

; ==============================
; ノートブックを整理して管理する
; ==============================

	; ------------------------------
	; ページとミニノートを操作する
	; ------------------------------
;	F11::Send {F11}	; F11	; 全体表示を有向または無効にします。
;	^m::Send ^m	; Ctrl+M	; 新しいOneNoteウィンドウを開きます。
;	^+m::Send ^+m	; Ctrl+Shift+M	; 小さいOneNoteウィンドウを開いて、ミニノートを作成します。
;	^+vkBAsc028::Send :	; Ctrl+*	; ページグループのタブを展開するかまたは折りたたみます。
;	^p::Send ^p	; Ctrl+P	; 現在のページを印刷します
;	^n::Send ^n	; Ctrl+N	; 選択したセクションの最後に新しいページを追加します。
;	^+[::Send ^+[	; Ctrl+Shift+[	; ページタブバーの幅を拡げます。
;	^+]::Send ^+]	; Ctrl+Shift+]	; ページタブバーの幅を縮めます。
;	^!n::Send ^!n	; Ctrl+Alt+N	; 現在のページタブの下に同じレベルの新しいページを作成します。
;	^![::Send ^![	; Ctrl+Alt+[	; 現在のページタブラベルのインデントレベルを下げます。
;	^!]::Send ^!]	; Ctrl+Alt+]	; 現在のページタブラベルのインデントレベルを上げます。
;	^+!n::Send ^+!n	; Ctrl+Shift+Alt+N ; 現在のページの下に新しいサブページを作成します。
;	^a::Send ^a	; Ctrl+A	; すべてのアイテムを選択します。
;	^+a::Send ^+a	; Ctrl+Shift+A	; 現在のページを選択します。
;	!+Up::Send !+{Up}	; Alt+Shift+↑	; 選択したページタブを上に移動します。
;	!+Down::Send !+{Down}	; Alt+Shift+↑	; 選択したページタブを上に移動します。
;	^+t::Send ^+t	; Ctrl+Shift+T	; カーソルをページタイトルに移動します。
;	!PgUp::Send !{PgUp}	; Alt+PageUp	; 表示されているページタブセットの最初のページに移動します。
;	!PgDn::Send !{PgDn}	; Alt+PageDown	; 現在表示されているページタブのセットの最後のページに移動します。
;	PgUp::Send {PgUp}	; PageUp	; 現在のページの上方向へスクロールします。
;	PgDn::Send {PgDn}	; PageDown	; 現在のページの下方向へスクロールします。
;	^Home::Send ^{Home}	; Ctrl+Home	; 現在のページの最初までスクロールします。
;	^End::Send ^{End}	; Ctrl+End	; 現在のページの最初までスクロールします。
;	^Down::Send ^{Down}	; Ctrl+↓	; 次の段落に移動します。
;	^Up::Send ^{Up}	; Ctrl+↑	; 1つ前の段落に移動します。
;	^!Up::Send ^!{Up}	; Ctrl+Alt+↑	; カーソルを現在のページの上方向に移動するか、ページを上方向に拡張します。
;	^!Down::Send ^!{Down}	; Ctrl+Alt+↓	; カーソルを現在のページの下方向に移動するか、ページを下方向に拡張します。
;	^!Left::Send ^!{Left}	; Ctrl+Alt+←	; カーソルを現在のページの左方向に移動するか、ページを左方向に拡張します。
;	^!Right::Send ^!{Right}	; Ctrl+Alt+→	; カーソルを現在のページの右方向に移動するか、ページを右方向に拡張します。
;	!Down::Send !{Down}	; Alt+↓	; 次のノートコンテナーに移動します。
;	Home::Send {Home}	; Home	; 行の先頭に移動します。
;	End::Send {End}	; End	; 行の最後に移動します。
;	Left::Send {Left}	; ←	; 左に1文字分移動します。
;	Right::Send {Right}	; →	; 右に1文字分移動します。
;	!Left::Send !{Left}	; Alt+←	; 直前に開いたページに戻ります。
;	!Right::Send !{Right}	; Alt+→	; 次に開いたページに進みます。
;	^!NumpadAdd::Send ^!{NumpadAdd}	; Alt+Ctrl+テンキーの+	; 拡大表示します。
;	^!NumpadSub::Send ^!{NumpadSub}	; Alt+Ctrl+テンキーの-	; 縮小表示します。
;	^s::Send ^s	; Ctrl+S	; 変更を保存します。

	; ------------------------------
	; ノートブックとセクションを操作する
	; ------------------------------
;	^t::Send ^t	; Ctrl+T	; 新しいセクションを作成します。
;	^o::Send ^o	; Ctrl+O	; ノートブックを開きます。
;	^!+o::Send ^!+o	; Ctrl+Alt+Shift	; セクションを開きます。
;	^Tab::Send ^{Tab}	; Ctrl+Tab	; 次のセクションに移動します。
;	^+Tab::Send ^+{Tab}	; Ctrl+Shift+Tab	; 1つ前のセクションに移動します。
;	^PgDn::Send ^{PgDn}	; Ctrl+PageDown	; セクション内の次のページに移動します。
;	^PgUp::Send ^{PgUp}	; Ctrl+PageUp	; セクション内の前のページに移動します。
;	!Home::Send !{Home}	; Alt+Home	; セクション内の最初のページに移動します。
;	!End::Send !{End}	; Alt+End	; セクション内の最後のページに移動します。
;	!PgUp::Send !{PgUp}	; Alt+PageUp	; 表示されているページタブセットの最初のページに移動します。
;	!PgDown::Send !{PgDown}	; Alt+Down	; 表示されているページタブセットの最後のページに移動します。
;	^!m::Send ^!m	; Ctrl+Alt+M	; 現在のページを移動またはコピーします。
;	^!g::Send ^!g	; Ctrl+Alt+G	; 現在のページタブにフォーカスを置きます。
;	^+a::Send ^+a	; Ctrl+Shift+A	; 現在のページタブを選択します。
;	^+g::Send ^+g	; Ctrl+Shift+G	; 現在のセクションタブにフォーカスを置きます。
;	::Send ^+g+{F10}m	; Ctrl+Shift+G,Shift+F10,M	; 現在のセクションを移動します。

	; ------------------------------
	; ノートを検索する
	; ------------------------------
;	^e::Send ^e	; Ctrl+E	; すべてのノートブックを検索するためにカーソルを[検索]ボックスに移動します。
;	Down::Send {Down}	; ↓	; すべてのノートブックを対象とする検索で、次の結果をプレビューします。
;	Enter::Send {Enter}	; Enter	; すべてのノートブックを対象とする検索で、選択した結果に移動し、検索を終了します。
;	::Send ^e{Tab}{Space}	; Ctrl+E,Tab,Space	; 検索範囲を変更します。
;	!o::Send !o	; (検索後に)Alt+O	; 検索結果ウィンドウを開きます。
;	^f::Send ^f	; Ctrl+F	; 現在のページのみを検索します。
;	Enter::Send {Enter}	; Enter	; 現在のページを対象とする検索で、次の結果に移動します。
;	F3::Send {F3}	; F3	; 現在のページを対象とする検索で、次の結果に移動します。
;	+F3::Send +{F3}	; Shift+F3	; 現在のページを対象とする検索で、前の結果に移動します。
;	Esc::Send {Esc}	; Esc	; 検索を終了してページに戻ります。

; ==============================
; ノートを共有する
; ==============================

	; ------------------------------
	; 他のユーザーとノートを共有する
	; ------------------------------
;	^+e::Send ^+e	; Ctrl+Shift+E	; 選択したページを電子メールメッセージで送信します。

	; ------------------------------
	; 他のプログラムとノートを共有する
	; ------------------------------
;	^+e::Send ^+e	; Ctrl+Shift+E	; 選択したページを電子メールメッセージで送信します。
;	^+1::Send ^+1	; Ctrl+Shift+1	; 現在選択しているノートから[今日]のOutlookのタスクを作成します。
;	^+2::Send ^+2	; Ctrl+Shift+2	; 現在選択しているノートから[明日]のOutlookのタスクを作成します。
;	^+3::Send ^+3	; Ctrl+Shift+3	; 現在選択しているノートから[今週]のOutlookのタスクを作成します。
;	^+4::Send ^+4	; Ctrl+Shift+4	; 現在選択しているノートから[来週]のOutlookのタスクを作成します。
;	^+5::Send ^+5	; Ctrl+Shift+5	; 現在選択しているノートから[日付なし]のOutlookのタスクを作成します。
;	^+k::Send ^+k	; Ctrl+Shift+K	; 選択したOutlookのタスクを開きます。
;	^+9::Send ^+9	; Ctrl+Shift+9	; 選択したOutlookのタスクを完了としてマークします。
;	^+0::Send ^+0	; Ctrl+Shift+0	; 選択したOutlookのタスクを削除します。
;	+F9::Send +{F9}	; Shift+F9	; 現在の共有ノートブックの変更を同期します。
;	F9::Send {F9}	; F9	; すべての共有ノートブックの変更を同期します。
;	^q::Send ^q	; Ctrl+Q	; 現在のページを未読としてマークします。

; ==============================
; ノートを保護する
; ==============================

	; ------------------------------
	; セクションをパスワードで保護する
	; ------------------------------
	^!l::Send ^!l	; Ctrl+Alt+L	; パスワードで保護されたセクションをすべてロックします。

; ==============================
; リボン
; ==============================

	; ------------------------------
	; ファイル(ノート編集画面から実行)
	; ------------------------------
;	::Send !fi	; Alt+F,I	; ファイル>情報
;	::Send !fo	; Alt+F,O	; ファイル>開く
;	::Send !fn	; Alt+F,N	; ファイル>新規作成
;	::Send !fe	; Alt+F,E	; ファイル>共有
;	::Send !fd	; Alt+F,D	; ファイル>送信
;	::Send !fp	: Alt+F,P	; ファイル>印刷
;	::Send !fpp	; Alt+F,P,P	; ファイル>印刷>印刷
;	::Send !fpr	; Alt+F,P,R	; ファイル>印刷>印刷プレビュー
;	::Send !fh	; Alt+F,H	; ファイル>ヘルプ
;	::Send !ft	; Alt+F,T	; ファイル>オプション
;	::Send !fx	; Alt+F,X	; ファイル>終了

	; ------------------------------
	; ホーム
	; ------------------------------
;	::Send !hff	; Alt+H,F,F	; ホーム>フォント
;	::Send !hfs	; Alt+H,F,S	; ホーム>フォントサイズ
;	::Send !hu	; Alt+H,U	; ホーム>行頭文字ライブラリ
;	::Send !hn	; Alt+H,N	; ホーム>番号ライブラリ
;	::Send !he	; Alt+H,E	; ホーム>書式のクリア
;	::Send !h1	; Alt+H,1	; ホーム>太字
;	::Send !h2	; Alt+H,2	; ホーム>斜体
;	::Send !h3	; Alt+H,3	; ホーム>下線
;	::Send !h4	; Alt+H,4	; ホーム>打ち消し線
;	::Send !h5	; Alt+H,5	; ホーム>下付き・上付き
;	::Send !h5{Enter}	; Alt+H,5,Enter	; ホーム>下付き・上付き>下付き文字
;	::Send !h5s{Enter}	; Alt+H,5,S,Enter	; ホーム>下付き・上付き>下付き文字
;	::Send !hi	; Alt+H,I	; ホーム>蛍光ペンの色
;	::Send !hfc	; Alt+H,F,C	; ホーム>フォントの色
;	::Send !hfca	; Alt+H,F,C,A	; ホーム>フォントの色>自動
;	::Send !hfcm	; Alt+H,F,C,M	; ホーム>フォントの色>その他の色...
;	::Send !hao	; Alt+H,A,O	; ホーム>インデント解除
;	::Send !hai	; Alt+H,A,I	; ホーム>インデント
;	::Send !hp	; Alt+H,P	; ホーム>段落の配置
;	::Send !hpl	; Alt+H,P,L	; ホーム>段落の配置>左揃え
;	::Send !hpc	; Alt+H,P,C	; ホーム>段落の配置>中央揃え
;	::Send !hpr	; Alt+H,P,R	; ホーム>段落の配置>右揃え
;	::Send !hpp	; Alt+H,P,P	; ホーム>段落の配置>段落間隔のオプション
;	::Send !hl	; Alt+H,L	; ホーム>スタイル
;	::Send !ht	; Alt+H,T	; ホーム>ノートシール
;	::Send !hg	; Alt+H,G	; ホーム>ノートシールを検索
;	::Send !hm	; Alt+H,M	; ホーム>ページを電子メールで送信

	; ------------------------------
	; 挿入
	; ------------------------------
;	::Send !ni1	; Alt+N,I,1	; 挿入>スペースの挿入
;	::Send !nt	; Alt+N,T	; 挿入>表の挿入
;	::Send !np	; Alt+N,P	; 挿入>図の挿入
;	::Send !nr	; Alt+N,R	; 挿入>画面の領域
;	::Send !nh	; Alt+N,H	; 挿入>リンク
;	::Send !nf	; Alt+N,F	; 挿入>ファイルの添付
;	::Send !no	; Alt+N,O	; 挿入>ファイルの印刷イメージ
;	::Send !ns	; Alt+N,S	; 挿入>スキャナーの印刷イメージ
;	::Send !na	; Alt+N,A	; 挿入>オーディオの録音
;	::Send !nv	; Alt+N,V	; 挿入>ビデオの録画
;	::Send !nc	; Alt+N,C	; 挿入>日付の挿入
;	::Send !ni2	; Alt+N,I,2	; 挿入>時刻の挿入
;	::Send !nd	; Alt+N,D	; 挿入>日付と時刻の挿入
;	::Send !ne	; Alt+N,E	; 挿入>数式の挿入
;	::Send !nu	; Alt+N,U	; 挿入>記号の挿入
;	::Send !num	; Alt+N,U,M	; 挿入>記号の挿入>その他の記号...

	; ------------------------------
	; 共有
	; ------------------------------
;	::Send !sm	; Alt+S,M	; 共有>ページを電子メールで送信
;	::Send !sn	; Alt+S,N	; 共有>次の未読
;	::Send !sr	; Alt+S,R	; 共有>既読にする
;	::Send !sru	; Alt+S,R,U	; 共有>既読にする>未読にする
;	::Send !srk	; Alt+S,R,K	; 共有>既読にする>ノートブックを既読にする
;	::Send !srs	; Alt+S,R,S	; 共有>既読にする>このノートブック内の未確認の変更内容を表示する
;	::Send !ss	; Alt+S,S	; 共有>新しい共有ノートブック
;	::Send !st	; Alt+S,T	; 共有>このノートブックの共有
;	::Send !se	; Alt+S,E	; 共有>最近の変更
;	::Send !set	; Alt+S,E,T	; 共有>最近の変更>今日...
;	::Send !sey	; Alt+S,E,Y	; 共有>最近の変更>昨日以降...
;	::Send !se7	; Alt+S,E,7	; 共有>最近の変更>過去7日間...
;	::Send !se4	; Alt+S,E,4	; 共有>最近の変更>過去14日間...
;	::Send !se0	; Alt+S,E,0	; 共有>最近の変更>過去30日間...
;	::Send !se3	; Alt+S,E,3	; 共有>最近の変更>過去3ヶ月...
;	::Send !se6	; Alt+S,E,6	; 共有>最近の変更>過去6ヶ月...
;	::Send !sea	; Alt+S,E,A	; 共有>最近の変更>すべてのページ(日付別)...
;	::Send !sf	; Alt+S,F	; 共有>作成者で検索
;	::Send !sa	; Alt+S,A	; 共有>作成者の非表示
;	::Send !sv	; Alt+S,V	; 共有>ページのバージョン
;	::Send !svv	; Alt+S,V,V	; 共有>ページのバージョン>ページのバージョン
;	::Send !svs	; Alt+S,V,S	; 共有>ページのバージョン>セクション無いのすべてのバージョンを削除
;	::Send !svg	; Alt+S,V,G	; 共有>ページのバージョン>セクショングループ内のすべてのバージョンを削除
;	::Send !svn	; Alt+S,V,N	; 共有>ページのバージョン>ノートブック内のすべてのバージョンを削除
;	::Send !svd	; Alt+S,V,D	; 共有>ページのバージョン>このノートブックの履歴を無効にする
;	::Send !sb	; Alt+S,B	; 共有>ノートブックのゴミ箱
;	::Send !sbb	; Alt+S,B,B	; 共有>ノートブックのゴミ箱>ノートブックのゴミ箱
;	::Send !sbe	; Alt+S,B,E	; 共有>ノートブックのゴミ箱>ゴミ箱を空にする
;	::Send !sbd	; Alt+S,B,D	; 共有>ノートブックのゴミ箱>このノートブックの履歴を無効にする

	; ------------------------------
	; 描画
	; ------------------------------
;	::Send !dt	; Alt+D,T	; 描画>選択と入力
;	::Send !de	; Alt+D,E	; 描画>消しゴム
;	::Send !des	; Alt+D,E,S	; 描画>消しゴム>消しゴム(小)
;	::Send !dem	; Alt+D,E,M	; 描画>消しゴム>消しゴム(中)
;	::Send !del	; Alt+D,E,L	; 描画>消しゴム>消しゴム(大)
;	::Send !dek	; Alt+D,E,K	; 描画>消しゴム>消しゴム(ストローク)
;	::Send !dl	; Alt+D,L	; 描画>なげなわ選択
;	::Send !dh	; Alt+D,H	; 描画>手のひらツール
;	::Send !dp	; Alt+D,P	; 描画>ペン
;	::Send !dpc	; Alt+D,P,C	; 描画>ペン>色と太さのその他のオプション
;	::Send !dpp	; Alt+D,P,P	; 描画>ペン>ペンモード
;	::Send !ds	; Alt+D,S	; 描画>図形の挿入
;	::Send !dsl	; Alt+D,S,L	; 描画>図形の挿入>描画モードのロック
;	::Send !dsa	; Alt+D,S,A	; 描画>図形の挿入>グリッドに合わせる
;	::Send !dc	; Alt+D,C	; 描画>色と太さ
;	::Send !ds	; Alt+D,S	; 描画>スペースの挿入
;	::Send !dd	; Alt+D,D	; 描画>削除
;	::Send !d+a	; Alt+D,A	; 描画>配置 ※4
;	::Send !d+af	; Alt+D,A,F	; 描画>配置>前面へ移動
;	::Send !d+ar	; Alt+D,A,R	; 描画>配置>最前面へ移動
;	::Send !d+ab	; Alt+D,A,B	; 描画>配置>背面へ移動
;	::Send !d+ak	; Alt+D,A,K	; 描画>配置>最背面へ移動
;	::Send !dr	; Alt+D,R	; 描画>回転
;	::Send !dr	; Alt+D,R,R	; 描画>回転>右へ90度回転
;	::Send !dr	; Alt+D,R,L	; 描画>回転>左へ90度回転
;	::Send !dr	; Alt+D,R,H	; 描画>回転>左右反転
;	::Send !dr	; Alt+D,R,V	; 描画>回転>上下反転
;	::Send !dx	; Alt+D,X	; 描画>インクからテキスト
;	::Send !dm	; Alt+D,M	; 描画>インクから数式


	; ------------------------------
	; 校閲
	; ------------------------------
;	::Send !rs	; Alt+R,S	; 校閲>スペルチェック
;	::Send !rr	; Alt+R,R	; 校閲>リサーチ
;	::Send !rl	; Alt+R,L	; 校閲>翻訳
;	::Send !rls	; Alt+R,L,S	; 校閲>翻訳>選択した文字列の翻訳
;	::Send !rlm	; Alt+R,L,M	; 校閲>翻訳>ミニ翻訳ツール
;	::Send !rll	; Alt+R,L,L	; 校閲>翻訳>翻訳言語の選択...
;	::Send !ru	; Alt+R,U	; 校閲>言語
;	::Send !rul	; Alt+R,U,L	; 校閲>言語>校正言語の設定...
;	::Send !rup	; Alt+R,U,P	; 校閲>言語>言語の設定...
;	::Send !rn	; Alt+R,N	; 校閲>リンクノート

	; ------------------------------
	; 表示
	; ------------------------------
;	::Send !wv	; Alt+W,V	; 表示>標準表示
;	::Send !wf	; Alt+W,F	; 表示>全体表示
;	::Send !wd	; Alt+W,D	; 表示>デスクトップの端に表示
;	::Send !wa	; Alt+W,A	; 表示>作成者の非表示
;	::Send !wpc	; Alt+W,P,C	; 表示>ページの色
;	::Send !wpcn	; Alt+W,P,C,N	; 表示>ページの色>色なし
;	::Send !wr	; Alt+W,R	; 表示>罫線
;	::Send !wre	; Alt+W,R,E	; 表示>罫線>なし
;	::Send !wrn	; Alt+W,R,N	; 表示>罫線>細横罫
;	::Send !wrc	; Alt+W,R,C	; 表示>罫線>中横罫
;	::Send !wrs	; Alt+W,R,S	; 表示>罫線>普通横罫
;	::Send !wrw	; Alt+W,R,W	; 表示>罫線>太横罫
;	::Send !wrg	; Alt+W,R,G	; 表示>罫線>小方眼
;	::Send !wrm	; Alt+W,R,M	; 表示>罫線>中方眼
;	::Send !wrl	; Alt+W,R,L	; 表示>罫線>大方眼
;	::Send !wrv	; Alt+W,R,V	; 表示>罫線>特大方眼
;	::Send !wrr{Enter}	; Alt+W,R,R,Enter	; 表示>罫線>罫線の色
;	::Send !wrrr{Enter}	; Alt+W,R,R,R,Enter	; 表示>罫線>罫線付きの新しいページを作成する
;	::Send !wt	; Alt+W,T	; 表示>ページタイトルの非表示
;	::Send !wps	; Alt+W,P,S	; 表示>用紙サイズ
;	::Send !ww	; Alt+W,W	; 表示>画面表示縮小
;	::Send !we	; Alt+W,E	; 表示>画面表示拡大
;	::Send !wq	; Alt+W,Q	; 表示>ズーム
;	::Send !w1	; Alt+W,1	; 表示>100%
;	::Send !w7	; Alt+W,7	; 表示>75%
;	::Send !wn	; Alt+W,N	; 表示>新しいウィンドウを開く
;	::Send !wc	; Alt+W,C	; 表示>新しいドッキングウィンドウ
;	::Send !ws	; Alt+W,S	; 表示>新しいミニノート
;	::Send !wo	; Alt+W,O	; 表示>常に手前に表示

#IfWinActive

おわりに

間違いや、アドバイスがあればコメントお願いします。 なにぶん、AutoHotkeyは使い始めたばかりなので。。。

OneNote | コメント:8 | トラックバック:0 | 編集

PuTTY(pscp.exe)を使ってSSH経由でWindowsとLinuxの間でファイルコピーを行う方法 このエントリーを含むはてなブックマーク

Windows-Linux間でファイルを転送したい

PuTTYを使ってWindowsからLinuxなどの遠隔のサーバにアクセスできるように なると、接続しているサーバ上で編集したりしているファイルを一体どうやって Windowsマシンにコピーすればいいのだろうという疑問がわくと思います。 また、PuTTYの動作しているWindows上のファイルを一体どうやって Linuxサーバに送りつければいいのだろうと思うかもしれません。

そこで今回は、PuTTYに含まれているpscp.exe を利用したWindowsとLinuxの間のファイルコピーを行う方法 をメモしておきます。

前提

WindowsとLinuxの間でファイルをコピーする際、 Linux側のディレクトリ構造がどうなっているか は、PuTTYでSSH接続をして確かめてください。 ファイルのコピーは一発ピンポイントに行います。 どこに目的のファイルがあるか、どこにファイルを設置したいかは要注意。

Windows側でpscp.exeというプログラムを利用してコピーを行うので、 コマンドプロンプトを起動して、

		>cd /d (pscp.exeの存在する場所へのパス)
	

などで移動しておくか、環境変数を編集してpscp.exeのある場所に PATHを通しておいて、コマンドプロンプトからpscp.exeを利用できる 状態にしてください。

パスワード認証と公開鍵認証

SSHをパスワードのみの認証で利用している場合は、pscp.exeを利用する際に、

		>pscp.exe -pw "password" (そのほかのオプションなど)
	

としてください。また、公開鍵認証を利用している場合は、pscp.exe を利用する前に、 あらかじめpagent.exeを起動し、 鍵の追加から公開鍵を登録しておいてください。 普段PuTTYを利用している人ならいつも通りということです 公開鍵を利用する場合は、pscp.exeに先ほどのような 追加オプションは不要で、

		>pscp.exe (オプションなど)
	

とすればOKです。これ以降、 「-pw "password"」の部分は書かない公開鍵認証のつもりで 話を進めます。

WindowsからLinuxへファイルを1つコピー

Windowsのカレントディレクトリにあるファイルを、 Linuxのホームディレクトリにコピーする」 場合は次のようにします。

		>pscp.exe win-file.txt user@server:.
	

「win-file.txt」は windows側のコピーしたいファイル、 「user」は、 SSHでログインするユーザ名を表しています。 「server」は、サーバのアドレスを表す192.168.1.1や ???.mine.nuを入力してください。そして、「:」はただの区切り文字で、 「.」は、宛先を表しています。 宛先は、ログインしたユーザのホームディレクトリが基準になるため、 「.」はホームディレクトリ そのままのことです。

これらを正しく設定することで、「serverにuserでログインして、 Windowsのカレントディレクトリにあるwin-file.txtというファイルを、Linux サーバのホームディレクトリにコピーできます。

win-file.txt |0 kB] 0.5 kB/s | ETA: 00:00:00 | 100%

のように表示されればコピー成功です。

以降、もう少し省略して、いろいろなパターンをメモしておきます。

WindowsからLinuxへフォルダごとコピー

windows上のフォルダを丸ごとLinuxのホームディレクトリへコピーします。

		>pscp.exe -r win-folder user@server:.
	

「-r」を忘れると「scp: win-folder: not a regular file」 と言われます。

LinuxからWindowsへファイルを一つコピー

Linuxのホームディレクトリにあるファイルlinux-fileを Windowsのカレントディレクトリへコピーします。

		>pscp.exe user@server:tmp .
	

「コピー元」、「コピー先」の順に書くので、今までとは逆になります。「.」は、 Windowsのカレントディレクトリを表しています。

LinuxからWindowsへディレクトリ丸ごとコピー

Linuxのホームディレクトリにあるディレクトリを丸ごとWindowsの カレントディレクトリへコピーします。

		>pscp.exe -r user@server:linux-dir .
	

そのほかの細々したこと

以上が基本なので、あとはちょっとしたコツを知れば、何とかなります。 ということで、残りはコツを書いておきます。 例を挙げるので、参考にしてください。

カレントディレクトリ・ホームディレクトリ以外を指定する

今までは、デフォルトの位置にあるファイルやフォルダを デフォルトの位置にしかコピーできなかったので、 そこを変更するコツ。

カレントディレクトリの一つ上のfolderの中にあるwin-file.txtを サーバのホームディレクトリにあるdirディレクトリの中へコピー 区切り文字に注意。

フルパス指定する

			>pscp.exe ..\dir1\win-file.txt user@server:dir/
		

フルパスで指定した「C:\dir\id_rsa.pub」を フルパスで指定した「/home/user2/.ssh」ディレクトリの中へ、 「authorized_keys2」という名称に変更しつつコピー

			>pscp.exe C:\dir\id_rsa.pub user@server:/home/user2/.ssh/authorized_key2
		

スペースの入るファイル名を扱う

			>pscp.exe "folder\file name.txt" user@server:"./dir name/new name"
		

SSH接続するポートを指定する

SSHは通常22番ポートを利用しますが、ポートを変更している場合には、次のように-Pオプションを利用します。

			>pscp.exe -P 1022 win-file.txt user@server:.
		

lsを利用してLinux側のファイルを見る(ls)

はじめにPuTTYを利用してファイルを見た方が良いと言ったのは、 そちらのほうが使いやすいからです。ただ、pscp.exeにも、 Linux側のls結果を見る機能があります。

			>pscp.exe -ls user@server:.
		

scp

もともとscpは、LinuxにあるSSHを利用したコピー(cp)を行うプログラムであり、 それのwindows版がpscpです。なので、今ここに書いた使い方のイメージで Linuxのscpを利用して、Linuxマシン間でファイルコピーを行うことも出来ます。

じゃぁ、Linux側でscpを使って、windowsに転送できるかというと、 それは話が別で、あくまでscpは「SSHサーバにログインして、コピーを行う」 のであって、windows側でSSHサーバを立ち上げていない限り、 それは出来ません。

まとめ

以上のようにして、WindowsとLinuxの間でファイルコピーがコマンドプロンプトから 実行できるはずです。ただ、これはあくまでPuTTYを使いたい場合であって、 全く別の方法として、「WinSCP」などもあります。

Ubuntuスタートアップバイブル
大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ
図解でわかる Linuxサーバ構築・設定のすべて

Linux | コメント:0 | トラックバック:0 | 編集

大量に起動したjavaアプリケーションを一括終了する方法メモ このエントリーを含むはてなブックマーク

javaアプリケーションを一括終了する

プロセスIDを取得して、終了させるのもいいんですが、めんどうなので、他に必要なjavaアプリケーションが無い限りは次の方法で一気に終了できます。

$ killall java

他に必要なjavaアプリケーションが実行されている場合はおすすめしません。

Effective Java 第2版
改訂第2版 Java言語プログラミングレッスン (上)
増補改訂版Java言語で学ぶデザインパターン入門

Java | コメント:0 | トラックバック:0 | 編集
 | HOME |  OLD >>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。