If you have to search for loop index variable, your code has worse problems than naming.
I mean - I don't recall writing a loop longer than 2 screens in years. Usually a loop is less than half a screen long.
And anyway, you can search for [^\w]i[^\w] if you really need to.
Maybe it's aquired taste, but in array-heavy code (usually math-related) I much prefer A[i][j][k] * B[j][k][i] than the same with long names for index variables.
jj = <ESC> changed my life; I'm not even joking. I even went so far as to put my zsh in vi mode and added jj there too. (WARNING: doing this will result in a pathological need to type jjk whenever you open a shell to start scrolling through history.)
I mean - I don't recall writing a loop longer than 2 screens in years. Usually a loop is less than half a screen long.
And anyway, you can search for [^\w]i[^\w] if you really need to.
Maybe it's aquired taste, but in array-heavy code (usually math-related) I much prefer A[i][j][k] * B[j][k][i] than the same with long names for index variables.