2013-10-22 82 views
1

在MATLAB編輯器中,您可以使用向上/向下箭頭鍵顯然滾動瀏覽行,並且可以使用頁面向上/向下按鈕跳轉頁面。有沒有辦法在MATLAB中「跳轉滾動」?

但是,有沒有一種方法可以讓我一次翻閱10行?或者其他一些可編程的行數?我以爲我可以做到這一點與CTRL鍵,但這似乎並沒有工作...

謝謝。

回答

1

不是我所知道的,但有一件事接近並且我覺得非常有用的是使用cell mode。它的工作方式是瓜分你的邏輯部分代碼的形式「%%節標題」(第一空間是必需的)的評論:

%% this is section one 

some_code_here(); % a normal comment 
bla; 

%% this is section two 

code_for_section_two_goes_here; 

如果再上電池模式(菜單切換在編輯器 - >單元格 - >啓用單元模式下),編輯器通過繪製一些細的灰線和改變背景顏色,可以非常清楚您正在處理哪一部分。這本身並不令人感興趣,但您可以通過將光標放置在單元格內的任意位置並按下CTRL + 輸入,讓Matlab只執行腳本當前單元中的代碼。您也可以將一個單元格向上或向下CTRL + /(類似於你想要的)和一些更多的東西像執行當前的小區中以跳轉到下一個CTRL + SHIFT + 輸入。所有這些都可以在文件 - >首選項 - >鍵盤 - >快捷方式下自定義。

將您的代碼與註釋劃分爲邏輯部分是您在維護良好的代碼中應該做的任何事情,所以這不是問題。我一直使用它將腳本劃分爲一個從文件加載某些內容的部分(這可能需要很長時間),然後進行一些計算(您可能需要更改幾次,而不必每次都重新加載數據) ,然後是另一部分製作一個情節(您可能需要編輯並執行很多次才能獲得正確的情節)。使用單元格模式,您可以逐節瀏覽您的代碼,並根據需要多次重複以確保正確。

+0

這很有道理。我已經嘗試過了(我應該這麼說),但是想知道是否有一種方法可以向上移動「一行10行」(例如10),而不必關心代碼塊是什麼。也就是說,不管... – Spacey

2

如果您使用的是Windows,你可以使用滾輪設置(在Control PanelMouse,標籤Wheel

Roll the wheel one notch to scroll: 
    The following number of lines at a time: 10 
+0

一次只能向上移動10行...有趣的感謝 - 我想知道如何不用鼠標來做這件事...但是... – Spacey

1

這裏有兩部分解決方案,讓你選擇的快捷鍵和滾動你想量我們會首先創建一個功能,jumpscroll,即移動尖號線任意數量的,保持其列位置:

function jumpscroll(n) 
    editor = com.mathworks.mlservices.MLEditorServices.getEditorApplication.getActiveEditor; 
    line_col = editor.positionToLineAndColumn(editor.getCaretPosition); 
    editor.goToLine(line_col(1)+n, line_col(2)) 

Matlab的鍵盤快捷方式不靈活地調用隨機樂趣但Yair Altman的EditorMacro大多解決了這個缺陷。該函數有三個參數調用:一個組合鍵,一個按下這些鍵時執行的動作,以及宏/快捷方式的類型。詳細瞭解內部功能文檔。

在命令窗口中運行時,對於箭頭鍵('UP'/'DOWN')和數字鍵盤箭頭(KB_UP),以下行爲鍵集(ctrl + shift +向上/向下)添加jumpscroll/KB_DOWN)。

n = 10; % number of lines to move up or down 
EditorMacro('shift ctrl pressed UP',  {@jumpscroll,-n}, 'run'); 
EditorMacro('shift ctrl pressed KP_UP', {@jumpscroll,-n}, 'run'); 
EditorMacro('shift ctrl pressed DOWN', {@jumpscroll, n}, 'run'); 
EditorMacro('shift ctrl pressed KP_DOWN', {@jumpscroll, n}, 'run'); 

現在改變跳過的行數或組合鍵現在變得微不足道了。不幸的是,鍵綁定只在當前的Matlab會話中持續存在,並且必須在每次新會話中重新加載。理想情況下,這些代碼會在startup.m中執行,但這會導致EditorMacro在完全加載之前嘗試訪問編輯器句柄的問題。所以......似乎有必要在啓動Matlab後手動運行這些行。如果有人有更好的主意,請回復!

該解決方案的兩個部分都依賴於Matlab的一些隱藏的內容,並可能在未來的版本中打破。 Yair解釋了EditorMacro以及它在UndocumentedMatlab.com上做得相當好。 (而且我發現他的工具uiinspect必不可少的理解編輯對象足夠寫jumpscroll。)


最後一節是林彬的答案評論,但我還沒有在S.O.聲譽實際上把它放在那裏。

如果您使用Windows,鍵盤宏程序AutoHotkey可以解決鼠標問題。在許多其他的事情中,它允許您通過按鍵來控制鼠標滾輪。而不是設置鼠標滾輪屬性滾動更大的數量,您可以用一個按鍵模仿n車輪點擊。 Mac/Linux可能有類似的東西。

+0

哇!我沒有想法,這甚至有可能......我還沒有嘗試過,因爲現在是夜晚,但我將不得不很快嘗試它......謝謝! – Spacey

+0

不客氣。我希望這個對你有用! – proteome

相關問題