How to cycle among previous yanks/detetions in IdeaVim? - intellij-idea

How to I access previous yanks in IdeaVim (I am using PyCharm but probably IdeaVim is the same for every JetBrains product, like IntelliJ IDEA)?
For instance, if I copy one line and then I delete something, I am not able to paste the previous line that was yanked. I am sure that there is a way to circumvent this.

Vim yanks the deleted text into the default register. To avoid this you should delete text into the blackhole register using. "_d. You can create additional mappings for convenience like nmap d "_d.
More about registers: https://www.brianstorti.com/vim-registers/
Additional option - use ReplaceWithRegister plugin of IdeaVim: https://github.com/JetBrains/ideavim#emulated-vim-plugins.
At the moment it's available in the EAP version and it will be released soon.

Related

intellij: is there selective undo feature as in emacs?

Basically, in emacs. we can undo changes only in a selected region. Its a a very useful feature. Wonder whether intellij has it.
No there isn't. The equivalent in IntelliJ is the local history. You can right click on a file, choose local history->show history. You can then see the changes made over time and select individual lines/sections to remove or reapply.

Can't type in IntelliJ

I'm using IntelliJ IDEA on my Mac to work on a project, and I keep on coming across an issue where I can't type. Occasionally when I switch to another application and then switch back to IntelliJ I can't type anything, and the cursor doesn't appear on text when I click on things. Does anyone know what causes this? After 1-2 minutes it goes back to normal, but it's started happening more frequently and it's pretty frustrating to not be able to type and have no way to fix it.
This is the version of IntelliJ I'm using:
IntelliJ IDEA 2016.1.3
Build #IC-145.1617, built on June 3, 2016
JRE: 1.8.0_76-release-b198 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Turn off Vim Emulator from Tools in the IntelliJ, like this picture:
I am encountering this issue aswell, ...
MAC os Mojave 10.14.2, Inteliij Community 2018.3.5
Aside from restarting / clearing caches, I found that cmd + leftShift + F still opens the search window, and all my keystrokes appeared in the searchbox!
After the searchshortcut, I was able to close the searchbox and work again!
The answer here helped me https://intellij-support.jetbrains.com/hc/en-us/community/posts/206152119-Can-t-type-in-editor-window
Quoting the author of the answer:
I had the same problem. It goes away after I click the icon at top of
the scroll bar. it happens frequently on windows 7/10, and
occasionally on mac. my colleagues said they have experienced it too
Have the same issue occasionally, can't type in any Intellij windows. My temporary/quick fix, is to:
Close any terminal windows in intellij
Use cmd+shift+f to pull up the search window.
Seems to fix it, for a while.
Closed IDEA, all IDEA projects! Even though in other IDEA windows I could type.
Removed .idea folder in the project I could not edit.
Restarted IDEA.
Then I was able to type!
Maybe you entered Vim emulator as said. Maybe only by mistake :).
Control-V is a frequently used shortcut. And Control-Alt_V is the shortcut to enable Vim mode so you can see the problem...
How to know in five seconds: type a ":" (colon) and if the cursor jump to end of the screen, that is vim. If so enter q to quit and then Control-Alt-V (on windows) to go back to IDEA standard mode.
vi is a powerful text editor since ever. But only if you pretend and know how to use it... There is even a warning on the IDEA install saying like "do not install unless you are familiar with Vim" in yellow bold text, iirc.
[Follows historic data, that you may find boring off-topic or interesting]
Today's editors opens the code in edit mode right away so you can start typing over existing code. Vim by the other hand opens the code in, let us say, browsing mode: there is a set of navigation keys to browse the code. Everything you type is supposed to be a command. When you want to edit you enter INSERT mode and then you can type new text. Only then.
Just for more historic data: vi navigation mode is great for studying code you do not know, using IDEA, since it does not change the text unless you tell it to, and some vi commands are clever.
One example:
"/" (forward slash) is one search command, and "z" is a smart scroll command so that:
/setCellFactory will search for the next match of "setCellFactory" and put the cursor there
Then if you type "z" the code will be positioned so that line is the first on screen. And if you type "." the line will be at the middle. And if you type "-" that line will be at the last position at the screen. And you can use these commands again and again. And new slash will go for the next match, like F3
This "z" thing is a feature I miss in Visual Studio, IDEA, Eclipse, Word, WordPad: these commands to scroll text AROUND a pattern... /pattern, z, z., z-. The alternative is the mouse wheel...
I am used to vi since the 80's and is the editor I still use today on Linux terminals so when this happened to me on IDEA I was lucky to remember and suspect of that on the first time.
Sorry if these details are boring
Ensure you haven't unintentionally enabled vim emulation. Go to IntelliJ Idea -> Preferences and select Plugins. Scroll down and look for the vim emulation plugin and if it's checked, then either uncheck it or uninstall it completely.
Ran into same issue with intelliJ 2017.1.2, but no VIM Plugin. However, I had just created an empty project with some .groovy files. I could edit the files in the groovy project, but not java projects.
Only way I could fix java projects, was blow-away workspace.xml files in each, then I could edit again. However, had to re-create tomcat configs, breakpoints, other IDE settings. etc.
I had a problem with entering characters when working with .story files. When I tried to type in any character, it appeared for a short while and immediately disappeared. The cause of the problem was jbehave plugin I was using. After uninstalling it and restarting IntelliJ everything was fine.
It seems to be because another window has the cursor and is not giving it back.
Check any open floated windows, click on them & then click back to your intellij instance
alternatively, if you have multiple intellij instances open the cursor could be there...
Go to the most recently opened IntelliJ instance
Check if the cursor has become stuck in that project's terminal window, or another window
no? check all other open IntelliJ instances
For me it happened because of vim
Om Mac, I solved it by navigating to File → Reload All from Disk.
Keyboard shortcut: ⌥ ⌘ Y
IntelliJ IDEA 2020.1.4
Try disabling plugins one at a time. It was the "BashSupport Pro" plugin that caused it for me. Disabled it and I could type again right away.
I read other comments saying some other plugins caused the issue as well.

CodeLens style in-context information in IntelliJ IDEA

For a while now, newer versions of Visual Studio have been able to display in-line information for methods, fields etc relating to how many times they may have been referenced or changed and who changed the code last. This feature is known as CodeLens.
Is there any plugin or feature in IntelliJ IDEA similar to this that would be able to display information on an individual class/field/method basis?
(22-Aug-2022 updated) The hints from git blame are also available in the latest IntelliJ IDEA.
==================
(For CodeLens function references feature) Now it's a built-in feature after version IntelliJ IDEA 2020.1.
You can enable it from:
Ref: https://blog.jetbrains.com/idea/2020/03/intellij-idea-2020-1-beta2/
There is no such plugin (yet).
You can of course right click the left gutter (gray editor to the left of the editor) and select "Annotate". That gives you at least the last edit per line.
More similar to your desired feature (but unfortunately not inline):
Select some text (e.g. a method), then right-click Git -> Show History for Selection.
Now there is JetBrains plugin named GitToolBox.
It has some similar functionality, including the current line "blame annotation" at the end of the line with detailed commit information:
This feature is available for Rider, but not for IntelliJ yet.
In Rider it's called Code Vision
You can vote for this feature request in IntelliJ IDEA here

Intellij IdeaVim change keys

I would really like to be able to use IdeaVIM but I am unable to figure out where I can set my custom vim key mappings. For example instead of using Esc I would like to use Ctrl-C and instead of using hjkl I like to use wasd.
I have all these already set in my .vimrc but IdeaVIM failed to load them. I can copy them over manually to whatever file is needed but there is no documentation on how to do this.
As of IdeaVim 0.35 (released 2014-05-15), key mappings in ~/.ideavimrc are supported. You can put source ~/.vimrc in that file if you want to include mappings from ~/.vimrc.
Release announcement
VIM-288
(Note: This question could probably be considered a duplicate of this other StackOverflow question.)
I've done this myself, and its pretty easy in IntelliJ 11. I know that in previous versions (9, maybe?) setting up keymap values is significantly different.
In IntelliJ 11 you can do the following:
Go to Settings
Select Keymap from the left menu
Search for Exit Insert Mode on the right side and associate whatever key you want to use, such as CTRL-C
If you like to have Vim plugin installed (I find it very handy for typing) and at the same time have Ctrl+C and Ctrl+V working for copy and paste actions, do the following:
In the IntelliJ Idea, click on File > Setting. On the left pane, expand Editor and click on Vim Emulation.
Here, under the Shortcut column, find Ctrl+C and change it's Handler (under Handler column) to IDE instead of Vim.
Repeat it for Ctrl+V as well and hit Apply and Ok.
Now, you should be able to use the keyboard shortcuts for copy and paste while keeping the Vim Emulator enabled.
IntelliJ 12.1:
Go to Settings
Select Keymap from the left menu
Find Escape under the Editor Actions section and add the Ctrl-C shortcut there. ("Escape" under the "IdeaVim" section didn't work for me)
Following the same steps, but replacing "Escape" with "Exit Insert Mode" only partially worked for me. It exited insert mode correctly but ignored the following keystroke. So typing Ctrl-C,j,j would exit insert but only go up one line instead of two.

How to fix IntelliJ Idea not closing tabs by Ctrl+F4?

I happen to use IntelliJ Idea 10.5.2 with Scala and SBT plugins to code in Scala on an XUbuntu 11.10 system with Oracle JDK 7.
And I can't close editor tabs with Ctrl+F4 (while right-clicking on a tab shows this shortcut for closing).
Any ideas about the reason probable and a way to fix?
Looks like xfce uses Ctrl+F4 as global shortcut that gets captured before it's propagated to IntelliJ. See this page for how to change shortcuts.
Alternatively you can also change the keybindings in IntelliJ. Use 'File|Settings' and got to 'Keymap' in the settings window. The 'close' action is bound to Ctrl+F4
Adding a new answer to this old question as duckduckgo brought me here. This shortcut can be edited quite easily on any version of Xfce (4) which has the Settings Editor app (tested on XUbuntu 18.04).
Launch Settings editor, and on the left column (channel) select xfce4-keyboard-shortcuts. Now on the right find any entry with the value <Primary>F? (primary means ctrl). Some entries can be deleted by pressing the reset button (the ones under xfwm4->custom). While you are at it, you might want to remove all the <Alt>F? bindings too (except Alt+F4).
The entries under xfwm4->default cannot be deleted, but the trick here is to edit the entry and remove any value.
I've read that this was editable in previous versions, but the value was in a text file somewhere (just sharing this in case anyone is using an older version of Xfce).
If you are using a Dell laptop where the F4 keys is used to 'mute' the sound. Muting the sound with the F4 key will disable the F4 key.
Try to unmute, function key 'fn'+F4 to unmute (lamp is not lit on key).
Then you can use CTRL+F4.