I am attempting to move from IntelliJ IDEA to vim, primarily for C development. What are the equivalent of the following common IntelliJ features/tasks in vim (and what plugin is required if any)?
Source Navigation
1) Find file in project by name (Ctrl + Shift + N)
2) Navigate to [Function] Declaration (Ctrl + B / Ctrl + Right Click)
3) File Structure Pop-up (Ctrl + F12)
4) "Forward" (Ctrl + Alt + Right)
5) "Back" (Ctrl + Alt + Left)
Refactoring
Note that for the following, I don't want just "find/replace." If I change a single function definition, I want all occurrences of that function updated in the project (as a single command).
6) Rename File / Function / Variable (Shift + F6)
7) Change Function Signature (Ctrl + F6)
8) Inline Function (Ctrl + Alt + N)
9) "Safe Delete" (Alt + Delete)
Safe Delete helps you delete a file / function / variable without breaking your compile. So, (for C) you could delete a *.h file from your project, with the operation listing the other files that import functions defined in that header and giving you the chance to cancel the delete.
Other
10) Show Usages (Ctrl + Alt + F7)
This is different from just "grep" as it gives you the option to exclude matches in comments, documentation, etc.
11) Surround with... (Ctrl + Alt + T)
In IntelliJ, I most commonly use this to surround method calls with "try/catch/finally." Perhaps not something that is needed much in C development?
12) Quick Documentation (Ctrl + Q)
IntelliJ pops up the JavaDoc in a tiny window, giving you the option to select from possible matches (if more than one). Here, I would expect equivalent except in a newly-opened split buffer.
13) Using Control-Space for keyword completion.