如何解决vim:在正常模式下键入<Enter>时,标签栏窗口会打开
在安装了标签栏插件的Vim中以普通模式键入
解决方法
尝试:help标签栏以打开文档。听起来您的vimrc文件中可能有一个映射,内容类似于
nnoremap <silent> <CR> :TagbarToggle<CR>
或
nnoremap <silent> <CR> :TagbarOpen<CR>
如果找到并删除该映射,将不再打开标签栏
,您对/WEB-INF/web.xml
的映射实际上是Enter键打开标签栏的原因。如果您从vimrc中删除该地图,则Enter键将不再触发package com.android.usb;
import androidx.appcompat.app.AppCompatActivity;
import java.util.HashMap;
import java.util.Iterator;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import java.util.HashMap;
import java.util.Iterator;
public class MainActivity extends AppCompatActivity {
private static final String ACTION_USB_PERMISSION = "com.android.usb.USB_PERMISSION";
Button btnCheck;
TextView textInfo;
UsbManager usbManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnCheck = (Button) findViewById(R.id.check);
textInfo = (TextView) findViewById(R.id.info);
btnCheck.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
textInfo.setText("");
checkInfo();
}
});
}
private void checkInfo()
{
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
PendingIntent permissionIntent = PendingIntent.getBroadcast(this,new Intent(ACTION_USB_PERMISSION),0);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
registerReceiver(usbReceiver,filter);
HashMap<String,UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
String i = "";
while(deviceIterator.hasNext())
{
UsbDevice device = deviceIterator.next();
usbManager.requestPermission(device,permissionIntent);
i += "\n" + "DeviceID: " + device.getDeviceId() + "\n"
+ "DeviceName: " + device.getDeviceName() + "\n"
+ "DeviceClass: " + device.getDeviceClass() + " - "
+ "DeviceSubClass: " + device.getDeviceSubclass() + "\n"
+ "VendorID: " + device.getVendorId() + "\n"
+ "ProductID: " + device.getProductId() + "\n";
}
textInfo.setText(i);
}
/*---------------------------------------------------------------------------------------------------*/
private final BroadcastReceiver usbReceiver = new BroadcastReceiver()
{
public void onReceive(Context context,Intent intent)
{
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action))
{
synchronized (this)
{
UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
/*-----------------------------------------------------------------------------------*/
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED,false))
{
if(device != null)
{
//call method to set up device communication
}
}
else
{
Log.d("ERROR","permission denied for device " + device);
}
}
}
}
};
/*------------------------------------------------------*/
}
。
Mappings for <C-m>
and <CR>
(Enter) are synonymous in Vim:
下表显示了键盘上的某些键与等效的Ctrl键组合之间的映射:
Ctrl-I选项卡
Ctrl- [Esc
Ctrl-M Enter
Ctrl-H退格键如果在地图的上表中使用Ctrl键组合之一,则该地图也将应用于相应的键。两个键产生相同的键扫描代码。例如,如果您为CTRL-I创建一个映射,则可以通过按Ctrl-I或Tab键来调用该映射。
这意味着当您设置<C-m>
时,它与
还设置:TagbarToggle
。
您可能想选择一个新的密钥而不是M。
在操作系统级别更改nmap <C-m> :TagbarToggle<CR>
发送的密钥
重新映射程序。
终端键绑定来自readline,readline是处理输入文本的程序 您的终端提示。 readline manual中包含键绑定的完整列表。
您可以通过在Vim中键入nmap <CR> :TagbarToggle<CR>
或阅读帮助文档here来找到有关Vim密钥代码的更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。