vimの入門用に作ったバグまみれのコードです。 このコードを修正していきながら、vimを学んでいきます。
以下のようにしてテストを実行します。 テストは落ちるので、vimの力を使って直してきましょう!
$ git clone https://github.com/kurenaif/average
$ cd average/average
$ go test -v
=== RUN TestAverage
test case 0:
in: []
out: "\n"
test case 1:
in: [1]
--- FAIL: TestAverage (0.00s)
panic: runtime error: index out of range [recovered]
panic: runtime error: index out of range
配列の i 番目の要素を arr[i]、求めたい値の i 番目の要素を res[i] とすると、
res[i]=arr[i-1] + arr[i] + arr[i+1]
を求めることで、i番目の要素の前後の平均値を求めるコードです。
ただし、0番目の要素では arr[-1]、最後の要素では arr[i+1] の要素が存在しないので、2つの値の平均値を求めてください。
最終的には、Average()関数では、resを出力するところまでやります。 最後に改行を出力してください。
もし、arrの要素数が0の場合は、改行のみを出力してください。
この講座で使用するvimのキーバインド(大文字と小文字は区別します)
基本的に編集の流れは、
縦移動→横移動→ノーマルモードでコマンドを実行→挿入モードに入る→文字を入力する→ノーマルモードに戻る
といった流れになります。
jk: ↓↑20G: 20行目に移動する(数字は好きに変えてね!)5j: 5行下に移動する(数字は好きに変えてね!)
hl: ←→$: 行末に移動f(: いまいるカーソルより右にある、一番近い 「(」 に移動する。(「(」の記号は好きに変えてね!)F(: いまいるカーソルより左にある、一番近い 「(」 に移動する。(「(」の記号は好きに変えてね!);: 一回前に入力したfやFを繰り返して入力する。
dd: 一行削除yy: 一行コピー(ヤンク)p: 削除やコピーしたものをペーストするctrl+a: いまカーソルの上にある数字を1増やすdiw: 今いるカーソルの上にある単語を削除する(delete inner word)
i: 今いるカーソルの左側で、挿入モードに入るa: 今いるカーソルの右側で、挿入モードに入るo: 今いるカーソルの次に下を挿入し、かつ挿入モードに入るO: 今いるカーソルの前に上を挿入し、かつ挿入モードに入る
以下の2つの方法がよく使われるが、どちらも微妙に押しにくいのでよくオリジナルのキーバインドが割り当てられている。
esc: 左手だけで押せるのがいい。 スムーズに押すのに練習がいるctrl+[: 両手を使うけど、escよりホームポジションに近い
ctrl+v: ビジュアルモードに入る(この後、hjklなどで移動して矩形選択が可能)shift+v: ビジュアルモードに入り、かつカーソルがある行を一行選択する- ビジュアルモードで
d: 今選択している文字をすべて削除する - ビジュアルモードで
y: 今選択している文字をすべてコピー(ヤンク)する