張迪, 李文露, 張萍
(西安歐亞學院,信息工程學院, 陜西,西安 710065)
快速移動光標在軟件編程以及文檔編輯、校對中被廣泛應用,Linux操作系統中定義了快速移動光標的方法,諸如在單詞之間跳轉,跳到本行的行首,跳到頁尾等;Word中通過上下左右鍵移動光標,Home鍵可移動到本行的開頭,End鍵可將光標移動到本行的末尾等。上述方法類似之處是通過不同的快捷鍵實現光標移動,所以用戶在使用時要記憶諸多的快捷鍵,或者通過鼠標和上下左右鍵的配合來實現移動光標。在軟件編程或者文本編輯時,鼠標和鍵盤之間切換本身也耗費時間。現有技術在快速移動光標問題上以快捷鍵為主,可以快速移動到行首或者行末,借助上下左右鍵或者其他快捷鍵進行移動。但它存在兩個缺點:一是快捷鍵較多,以Linux操作系統為例,關于移動光標的快捷鍵多達10個左右,用戶需要熟練記憶,才能高效應用;二是通過快捷鍵能夠快速移動到目標位置周圍,但光標從目標位置周圍到目標位置還需通過上下左右鍵一次一次移動,導致光標移動多次,文檔編輯效率降低。Eli Brenner等[1]發現人們對如何移動電腦鼠標將光標放置在屏幕上所需的位置有很好的直覺,因為手和鼠標在不同的位置,他們通常向不同的方向和不同的距離移動,于是通過改變這個表面在空間和手中鼠標的方向,使得無論是在空間上還是相對于前臂的位置上,當手和光標運動之間的映射接近我們習慣的時候,參與者的表現最好。H Hindarto等[2]研究解釋了腦電圖(EEG)信號波用于上下移動光標的應用,在波形的每個子波段,腦電圖會產生平均值和標準差作為腦電圖的特征,人工神經網絡的反向傳播作為判斷光標是向上移動還是向下移動的基礎。 因此,本文結合文獻研究,為克服上述現有方法中存在的問題,提供了一種快速移動光標的方法,解決光標移動范圍為當前位置附近的區域范圍中快速移動光標的問題。
Gennaro Senatore等[3-4]提出以教育的形式設計交互方式。Makoto Fujimura等[5-7]提出通過運動模糊的光標進行偽觸覺的研究。因此本文以人腦直覺確定移動的目標位置的條件下,研究實現如何將多步鍵盤按鍵敲擊變為一鍵到達目標位置來設計交互方式。本文提出以編程為場景,解決光標在目標位置周圍時,不使用上下左右鍵時,通過基于人腦特征的直覺判斷操作鍵盤的物理位置,使得光標移動到目標位置,減少點擊鍵盤的次數,進而提升移動光標的速率,達到一種類似觸摸屏移動操作的效果。
以具體技術思路為首,先根據光標當前的位置確定其周圍一塊區域并高亮顯示,如圖1所示,確定以當前光標坐標(a,b)為中心的區域。同時以肉眼快速判斷位置,以鍵盤作為輸入確定目標位置的思路下,將鍵盤按鍵的位置和圖1中的區域位置對應起來,這就要求對于鍵盤按鍵,我們需要將鍵盤中的某一個按鍵作為中心,簡稱中心按鍵。將中心按鍵和光標當前位置的坐標對應起來,這樣按照高亮區域的坐標,將中心按鍵向外輻射區域中包括的按鍵都囊括進來,當用戶肉眼判別目標光標位置在鍵盤物理位置的某一按鍵處時,點擊該按鍵,程序將鍵盤輸入按鍵相對于中心按鍵的坐標記錄下來,將光標移動到該坐標,實現類似于觸摸屏的快速移動效果。如圖2所示,白色框線內為實際選取的按鍵區域,區域內按鍵可以調整光標的位置。

圖1 高亮顯示區域坐標

圖2 映射鍵盤區域
本文技術方案是一種快速移動光標的方法,包括如下步驟。
(1)調用編輯器接口獲取當前光標所在的列號a和行號b,將(a,b)作為高亮區域的中心點,鍵盤上始終以鍵盤中部某字母為中心,(a,b)對應鍵盤中部該字母。
(2)確定高亮區域,在鍵盤上確定高亮區域的各個坐標如下:
b行向上數兩行確定為b-2,b行向下數一行確定為b+1;
a列所處的第b行向左數6,坐標為(a-6,b),a列所處的第b行向右數5,坐標為(a+5,b);
a列所處的第b-1行向左數6,坐標為(a-6,b-1),a列所處的第b-1行向右數7,坐標為(a+7,b-1);
a列所處的b-2行向左數7,坐標為(a-7,b-2),a列所處的第b-2行向數6,坐標為(a+6,b-2);
a列所處的第b+1行向左數5,坐標為(a-5,b+1),a列所處的第b+1行向右數6,坐標為(a+6,b+1);
根據以上確定的8個坐標,調用編輯器接口將這8個坐標范圍內的區域設置為粉色高亮顯示;
(3)屏幕光標位置跳轉,鍵盤中部該字母坐標(a,b)。
接收鍵盤輸入,計算鍵盤上被點擊的按鍵距離中心按鍵的坐標,將屏幕編輯器上高亮區域中坐標與被點擊按鍵的坐標相等的位置用白色高亮顯示。
(4)重復步驟(1)實現鍵盤按鍵位置與編輯器高亮部分的對應跳轉,達到快速移動光標的目的。
參見圖1~圖4,該方法將鍵盤上一設定區域的多個按鍵的位置和電腦屏幕編輯器中設定的高亮區域字符的位置一一對應,圖3為快速光標移動技術的應用流程圖,圖4為1-3字符m所右位置的光標為起始點,向圖5所示的橫杠字符移動,只需要點按鍵盤上的M按鍵即可。

圖3 快速光標移動流程

圖4 以字母‘m’為中心的高亮區域顯示
本文提供的快速移動光標的方法,當光標在目標位置周圍時,不通過上下左右鍵,而是一種類似觸摸屏的移動操作。通過操作鍵盤的物理位置,使得光標移動到目標位置,減少點擊鍵盤的次數,進而提升移動光標的速率,每次移動只用一次快捷鍵,用于在各類編輯器中標注/選中光標周圍的一片區域,以光標為中心點標注出類似鍵盤排版的區域,鍵盤上按鍵的物理位置與編輯器中標注區域的位置一一對應,通過點擊鍵盤上的某個鍵移動到編輯器標注區域的對應位置即可快速移動到目標位置。該方法減少光標移動次數,同時通過肉眼對物理位置的判斷在鍵盤上敲下屏幕上對應位置的按鍵,而不用關心按鍵上的字母。此時,鍵盤相當于光標周圍區域的拷貝,類似觸摸屏一樣,只需在想移動的位置一點即可快速移動,這種移動光標的方式具有很大的實用價值,對于非觸摸屏的臺式電腦、筆記本電腦都適用,在文本編輯時可體會到與觸摸屏移動一般迅捷的效果。

圖6 映射關系
為測試本方法的效率,進行實驗分析,我們選取了軟件工程專業大三學年的兩個班級65名學生,互聯網企業18名軟件開發工程師進行測試。每人采用傳統上下鍵和鍵鼠切換方式記錄特定幾行代碼的移動時間后,再采用本文提出的方法仍對這幾行代碼進行移動,并記錄時間,具體測試參數設置見表1。

表1 實驗參數
對比兩種移動光標所耗的時間,結果如圖7所示,縱軸表示時間,以秒為單位,橫軸表示回收到的學生數據。

圖7 光標移動時間損耗對比
本方法能夠在各類編輯器中通過快速將光標移動到目標位置,適用場景是軟件編程、文字編輯、校對等,能夠提升移動速率,尤其是在沒有鼠標的情況下,比如在只能鍵盤輸入時,用遠程工具連接Linux機器的情況下,本方法在電腦編輯器中可快速移動到目標位置,不需要記憶過多快捷鍵,并且不需要使用鼠標,程序員或者其他用戶只應用鍵盤,避免切換鼠標和鍵盤帶來的時間損耗,具有非常大的實用價值。