MATLABではコードボディの開始と終了を自動的に挿入できますか? 例:classdefおよびend;機能と終了;方法と終了。MATLABは自動的にコード本体の開始および終了ステートメントを完了しますか?
2
A
答えて
2
私は非常に多くの異なるエディタで定期的に働いているので、私はどのエディタの機能にも依存しません。これらのすべてを学び、これらすべてのエディタの設定をすべてのマシンで同期させておくのは苦労です。しばしば、私が以前使っていたのと同じ機能を持っていると便利です。MS Wordやスタックオーバーフローのようなコードではないエディタでも役に立ちます。
したがって、私はAutoHotkeyをこの種類のもの(LinuxではAutokey)に使用します。
ファンクションとクラスでは、私が仕事中であるか自宅であるか、どのプロジェクトで作業しているかによって、特定のテンプレートファイルを貼り付けるために貼り付け機能を使用します。次に、小さなGUIが関数名またはクラス名を要求し、テンプレートを作成します。あなたが望むなら、私もそれを分かち合うことができます。
以下は、end
キーワードを含めるために使用するいくつかのAutoHotkey関数とホットストリングです。これはすべてend
を置くだけではあまりにも複雑すぎるように見えますが、この場合はおそらくそうです。しかし、clipCopy
、clipPaste
、getIndent
の関数は、残りのプログラミングスニペットでは有用であることが証明されています。
私はエラー関数も投げました。
; Copy selected text
; More robust than C-c/C-x/C-v; see
; https://autohotkey.com/board/topic/111817-robust-copy-and-paste-routine-function/
clipCopy(dontRestoreClipboard := 0)
{
prevClipboard := Clipboard
Clipboard := ""
copyKey := "vk43sc02E" ; Copy
SendInput, {Shift Down}{Shift Up}{Ctrl Down}{%copyKey% Down}
ClipWait, 0.25, 1
SendInput, {%copyKey% Up}{Ctrl Up}
str := Clipboard
if (dontRestoreClipboard == 0)
Clipboard := prevClipboard
return str
}
clipPaste(ByRef txt, dontBackupClipboard := 0)
{
if (txt != "")
{
prevClipboard := ""
pasteKey := "vk56sc02F" ; Paste
if (dontBackupClipboard == 0) {
prevClipboard := Clipboard
Clipboard := ""
}
Clipboard := txt
ClipWait, 1.00, 1
; Start pressing paste key
SendInput, {Shift Down}{Shift Up}{Ctrl Down}{%pasteKey% Down}
; Wait until clipboard is ready
startTime := A_TickCount
while (DllCall("GetOpenClipboardWindow") && (A_TickCount - startTime < 1000)) {
Sleep, 50
}
; Release paste key
SendInput, {%pasteKey% Up}{Ctrl Up}
; TODO: a manual delay still seems necessary...this vlaue needs to be this large, to also have
; correct behavior in superslow apps like MS Office, Outlook, etc. Sadly, the SetTimer approach
; does not seem to work (doesn't correctly restore the clipboard); to be investigated.
Sleep 333
; Put previous clipboard content back onto the clipboard
Clipboard := prevClipboard
}
}
; Get current indentation level in an editor-independent way
getIndent(dontRestoreClipboard := 0)
{
; Select text from cursor to start of line
SendInput, +{Home}
indent := clipCopy(dontRestoreClipboard)
numsp := 0
if (indent != "")
indent := RegExReplace(indent, ".", " ", numsp)
; Undo selection (this is tricky; different editors often have
; different behavior for Home/End keys while text is selected
SendInput, {Right}{Left}{Home}
; NOTE: don't use {End}, because we might be in the middle of a sentence
; Use the "right" key, repeatedly
Loop, %numsp% {
SendInput, {Right}
}
return indent
}
mBasic(str)
{
current_indent := getIndent()
SendInput, %str%(){Enter}+{Home}%current_indent%{Space 4}{Enter}+{Home}%current_indent%end{Up 2}{End}{Left}
}
mErrfcn(str)
{
current_indent := getIndent()
spaces := RegExReplace(str, ".", " ")
clipPaste(str . "([mfilename ':default_errorID'],...`r`n" . current_indent . spaces . " 'Default error string.');")
return current_indent
}
; MATLAB Hotstrings for basic control structures
:o:mfor::
mBasic("for")
return
:o:mpar::
mBasic("parfor")
return
:o:mwhile::
mBasic("while")
return
:o:spmd::
mBasic("spmd")
return
:o:mif::
mBasic("if")
return
; ...etc.
; error, warning, assert
:o:merr::
:o:merror::
mErrfcn("error")
SendInput, {Up}{End}{Left 21}
return
:o:mwarn::
:o:mwarning::
mErrfcn("warning")
SendInput, {Up}{End}{Left 21}
return
_mlAssert()
{
current_indent := mErrfcn("assert")
SendInput, {Up}{End}{Left 34}true,...{Enter}+{Home}%current_indent%{Space 7}{Up}{End}{Left 8}
}
:o:massert::
_mlAssert()
return
関連する問題
- 1. GC開始および終了イベント
- 2. 再生が完了したらAVPlayerを自動的に終了しますか?
- 3. Foreachループの開始時および終了時にdivを配置します。
- 4. Javaデーモンスレッドは、親が終了すると自動的に終了しますか?
- 5. `func`が終了するとスレッドは自動的に終了しますか?
- 6. JavaScriptで開始および終了インデックスを選択しました
- 7. BinaryFormatter.Serialize()はFileStream.Flush()およびFileStream.Close()の前に終了しますか?
- 8. paramiko:リモートで開始されたプロセスを自動的に終了する
- 9. ループを開始および終了するための複数の条件
- 10. XML要素の開始および終了スペースを削除する
- 11. 目的C:開始点と終了点
- 12. JavaScriptで特定のタグで開始および終了するテキストエリア内のハイライトテキスト
- 13. 開始および終了時のテキストを含むQMLスライダの目盛り
- 14. xml開始タグを入力するときに自動的に終了タグを追加しますか?
- 15. SurfaceViewを自動的に終了
- 16. NodeJS + mysql - 自動的にプール接続を終了しますか?
- 17. 開始日の終了日と終了日を取得する
- 18. 完了時にsetOnUtteranceProgressListenerの後にサービスを開始しますか?
- 19. コマンドがまだ完了していないと、Python os.system()が自動的に終了します
- 20. 完了後、SKActionは自動的に削除されますか?
- 21. systemd:サービスに開始/終了を渡す
- 22. MySqlは自動的に終了します
- 23. ノックアウト自動完了
- 24. UICollectionViewTransitionLayoutおよび終了時のcontentOffset
- 25. devenv/deployを使用してビルドを即座に開始および終了します。
- 26. jQuery - セッションの終了時にイベントを開始しますか?
- 27. スプリングブートダッシュボードプロジェクトの開始が完了しない
- 28. Cでは、親プロセスが終了すると、子プロセスは自動的に終了しますか?
- 29. 終了日までのループスルー開始日
- 30. Springは自動的にDataSourceを終了し、終了する必要がありますか?
あなたは、MATLABエディタを意味しますか?例えばNotepad ++のように? –
@RodyOldenhuisはい。はい。ちょうどそれのように。 –
私はそうは思わない...しかし、私はこれがMATLABの最新バージョンでどのように動作するのかよくわかりません。私はデフォルトのエディタをNotepad ++に設定しましたが、デバッグやコードアナライザーメッセージのチェックのためにMATLABエディタに戻ることがあります –