Merge branch 'master' of http://gitlab.rezometz.org/lhark/rc
This commit is contained in:
commit
0f6a962d9b
31 changed files with 13437 additions and 142 deletions
|
@ -1,3 +1,7 @@
|
|||
[user]
|
||||
email = lhark@hotmail.fr
|
||||
name = lhark
|
||||
email = lhark@hotmail.fr
|
||||
[master]
|
||||
autosetuprebase = always
|
||||
[color]
|
||||
ui = auto
|
||||
|
|
|
@ -4,7 +4,7 @@ SCRIPT=$(readlink -f "$0")
|
|||
SCRIPTPATH=$(dirname "$SCRIPT")
|
||||
|
||||
# List of the config files to install
|
||||
FILES="vimrc zshrc gitconfig"
|
||||
FILES="vimrc zshrc gitconfig vim"
|
||||
|
||||
# Create symbolic links in the user's home dir
|
||||
for file in $FILES
|
||||
|
|
5
vim/.netrwhist
Normal file
5
vim/.netrwhist
Normal file
|
@ -0,0 +1,5 @@
|
|||
let g:netrw_dirhistmax =10
|
||||
let g:netrw_dirhist_cnt =3
|
||||
let g:netrw_dirhist_1='/home/lhark/.config/xfce4/xfconf'
|
||||
let g:netrw_dirhist_2='/home/lhark/dev/paiji2/.git'
|
||||
let g:netrw_dirhist_3='/usr/share/themes/Mire_v2_blue'
|
16
vim/after/ftplugin/java.vim
Normal file
16
vim/after/ftplugin/java.vim
Normal file
|
@ -0,0 +1,16 @@
|
|||
" Java specific config
|
||||
|
||||
" Indentation
|
||||
setlocal autoindent
|
||||
setlocal si
|
||||
setlocal shiftwidth=4
|
||||
setlocal noexpandtab
|
||||
" Anonymous classes
|
||||
setlocal cindent cinoptions& cinoptions+=j1
|
||||
" Repair extends and implements Indentation
|
||||
setlocal indentkeys& indentkeys+=0=extends indentkeys+=0=implements
|
||||
|
||||
"Syntax highlighting
|
||||
let java_highlight_java_lang_ids=1
|
||||
let java_highlight_functions="style"
|
||||
let java_highlight_debug=1
|
670
vim/autoload/Reflection.java
Normal file
670
vim/autoload/Reflection.java
Normal file
|
@ -0,0 +1,670 @@
|
|||
/**
|
||||
* Reflection.java
|
||||
*
|
||||
* A utility class for javacomplete mainly for reading class or package information.
|
||||
* Version: 0.77
|
||||
* Maintainer: cheng fang <fangread@yahoo.com.cn>
|
||||
* Last Change: 2007-09-16
|
||||
* Copyright: Copyright (C) 2007 cheng fang. All rights reserved.
|
||||
* License: Vim License (see vim's :help license)
|
||||
*
|
||||
*/
|
||||
|
||||
import java.lang.reflect.*;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.util.zip.*;
|
||||
|
||||
class Reflection {
|
||||
static final String VERSION = "0.77";
|
||||
|
||||
static final int OPTION_FIELD = 1;
|
||||
static final int OPTION_METHOD = 2;
|
||||
static final int OPTION_STATIC_FIELD = 4;
|
||||
static final int OPTION_STATIC_METHOD = 8;
|
||||
static final int OPTION_CONSTRUCTOR = 16;
|
||||
static final int OPTION_STATIC = 12; // compound static
|
||||
static final int OPTION_INSTANCE = 15; // compound instance
|
||||
static final int OPTION_ALL = 31; // compound all
|
||||
static final int OPTION_SUPER = 32;
|
||||
static final int OPTION_SAME_PACKAGE = 64;
|
||||
|
||||
static final int STRATEGY_ALPHABETIC = 128;
|
||||
static final int STRATEGY_HIERARCHY = 256;
|
||||
static final int STRATEGY_DEFAULT = 512;
|
||||
|
||||
static final int RETURN_ALL_PACKAGE_INFO = 0x1000;
|
||||
|
||||
static final String KEY_NAME = "'n':"; // "'name':";
|
||||
static final String KEY_TYPE = "'t':"; // "'type':";
|
||||
static final String KEY_MODIFIER = "'m':"; // "'modifier':";
|
||||
static final String KEY_PARAMETERTYPES = "'p':"; // "'parameterTypes':";
|
||||
static final String KEY_RETURNTYPE = "'r':"; // "'returnType':";
|
||||
static final String KEY_DESCRIPTION = "'d':"; // "'description':";
|
||||
static final String KEY_DECLARING_CLASS = "'c':"; // "'declaringclass':";
|
||||
|
||||
static final String NEWLINE = ""; // "\r\n"
|
||||
|
||||
static boolean debug_mode = false;
|
||||
|
||||
static Hashtable htClasspath = new Hashtable();
|
||||
|
||||
public static boolean existed(String fqn) {
|
||||
boolean result = false;
|
||||
try {
|
||||
Class.forName(fqn);
|
||||
result = true;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static String existedAndRead(String fqns) {
|
||||
Hashtable mapPackages = new Hashtable(); // qualified name --> StringBuffer
|
||||
Hashtable mapClasses = new Hashtable(); // qualified name --> StringBuffer
|
||||
|
||||
for (StringTokenizer st = new StringTokenizer(fqns, ","); st.hasMoreTokens(); ) {
|
||||
String fqn = st.nextToken();
|
||||
try {
|
||||
Class clazz = Class.forName(fqn);
|
||||
putClassInfo(mapClasses, clazz);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
String binaryName = fqn;
|
||||
boolean found = false;
|
||||
while (true) {
|
||||
try {
|
||||
int lastDotPos = binaryName.lastIndexOf('.');
|
||||
if (lastDotPos == -1)
|
||||
break;
|
||||
binaryName = binaryName.substring(0, lastDotPos) + '$' + binaryName.substring(lastDotPos+1, binaryName.length());
|
||||
Class clazz = Class.forName(binaryName);
|
||||
putClassInfo(mapClasses, clazz);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
catch (Exception e) {
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
putPackageInfo(mapPackages, fqn);
|
||||
}
|
||||
}
|
||||
|
||||
if (mapPackages.size() > 0 || mapClasses.size() > 0) {
|
||||
StringBuffer sb = new StringBuffer(4096);
|
||||
sb.append("{");
|
||||
for (Enumeration e = mapPackages.keys(); e.hasMoreElements(); ) {
|
||||
String s = (String)e.nextElement();
|
||||
sb.append("'").append( s.replace('$', '.') ).append("':").append(mapPackages.get(s)).append(",");
|
||||
}
|
||||
for (Enumeration e = mapClasses.keys(); e.hasMoreElements(); ) {
|
||||
String s = (String)e.nextElement();
|
||||
sb.append("'").append( s.replace('$', '.') ).append("':").append(mapClasses.get(s)).append(",");
|
||||
}
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
private static String getPackageList(String fqn) {
|
||||
Hashtable mapPackages = new Hashtable();
|
||||
putPackageInfo(mapPackages, fqn);
|
||||
return mapPackages.size() > 0 ? mapPackages.get(fqn).toString() : "";
|
||||
}
|
||||
|
||||
private static Hashtable collectClassPath() {
|
||||
if (!htClasspath.isEmpty())
|
||||
return htClasspath;
|
||||
|
||||
// runtime classes
|
||||
if ("Kaffe".equals(System.getProperty("java.vm.name"))) {
|
||||
addClasspathesFromDir(System.getProperty("java.home") + File.separator + "share" + File.separator + "kaffe" + File.separator);
|
||||
}
|
||||
else if ("GNU libgcj".equals(System.getProperty("java.vm.name"))) {
|
||||
if (new File(System.getProperty("sun.boot.class.path")).exists())
|
||||
htClasspath.put(System.getProperty("sun.boot.class.path"), "");
|
||||
}
|
||||
|
||||
if (System.getProperty("java.vendor").toLowerCase(Locale.US).indexOf("microsoft") >= 0) {
|
||||
// `*.ZIP` files in `Packages` directory
|
||||
addClasspathesFromDir(System.getProperty("java.home") + File.separator + "Packages" + File.separator);
|
||||
}
|
||||
else {
|
||||
// the following code works for several kinds of JDK
|
||||
// - JDK1.1: classes.zip
|
||||
// - JDK1.2+: rt.jar
|
||||
// - JDK1.4+ of Sun and Apple: rt.jar + jce.jar + jsse.jar
|
||||
// - JDK1.4 of IBM split rt.jar into core.jar, graphics.jar, server.jar
|
||||
// combined jce.jar and jsse.jar into security.jar
|
||||
// - JDK for MacOS X split rt.jar into classes.jar, ui.jar in Classes directory
|
||||
addClasspathesFromDir(System.getProperty("java.home") + File.separator + "lib" + File.separator);
|
||||
addClasspathesFromDir(System.getProperty("java.home") + File.separator + "jre" + File.separator + "lib" + File.separator);
|
||||
addClasspathesFromDir(System.getProperty("java.home") + File.separator + ".." + File.separator + "Classes" + File.separator);
|
||||
}
|
||||
|
||||
// ext
|
||||
String extdirs = System.getProperty("java.ext.dirs");
|
||||
for (StringTokenizer st = new StringTokenizer(extdirs, File.pathSeparator); st.hasMoreTokens(); ) {
|
||||
addClasspathesFromDir(st.nextToken() + File.separator);
|
||||
}
|
||||
|
||||
// user classpath
|
||||
String classPath = System.getProperty("java.class.path");
|
||||
StringTokenizer st = new StringTokenizer(classPath, File.pathSeparator);
|
||||
while (st.hasMoreTokens()) {
|
||||
String path = st.nextToken();
|
||||
File f = new File(path);
|
||||
if (!f.exists())
|
||||
continue;
|
||||
|
||||
if (path.endsWith(".jar") || path.endsWith(".zip"))
|
||||
htClasspath.put(f.toString(), "");
|
||||
else {
|
||||
if (f.isDirectory())
|
||||
htClasspath.put(f.toString(), "");
|
||||
}
|
||||
}
|
||||
|
||||
return htClasspath;
|
||||
}
|
||||
|
||||
private static void addClasspathesFromDir(String dirpath) {
|
||||
File dir = new File(dirpath);
|
||||
if (dir.isDirectory()) {
|
||||
String[] items = dir.list(); // use list() instead of listFiles() since the latter are introduced in 1.2
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
File f = new File(dirpath + items[i]);
|
||||
if (!f.exists())
|
||||
continue;
|
||||
|
||||
if (items[i].endsWith(".jar") || items[i].endsWith(".zip") || items[i].endsWith(".ZIP")) {
|
||||
htClasspath.put(f.toString(), "");
|
||||
}
|
||||
else if (items.equals("classes")) {
|
||||
if (f.isDirectory())
|
||||
htClasspath.put(f.toString(), "");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* If name is empty, put all loadable package info into map once.
|
||||
*/
|
||||
private static void putPackageInfo(Hashtable map, String name) {
|
||||
String prefix = name.replace('.', '/') + "/";
|
||||
Hashtable subpackages = new Hashtable();
|
||||
Hashtable classes = new Hashtable();
|
||||
for (Enumeration e = collectClassPath().keys(); e.hasMoreElements(); ) {
|
||||
String path = (String)e.nextElement();
|
||||
if (path.endsWith(".jar") || path.endsWith(".zip"))
|
||||
appendListFromJar(subpackages, classes, path, prefix);
|
||||
else
|
||||
appendListFromFolder(subpackages, classes, path, prefix);
|
||||
}
|
||||
|
||||
if (subpackages.size() > 0 || classes.size() > 0) {
|
||||
StringBuffer sb = new StringBuffer(1024);
|
||||
sb.append("{'tag':'PACKAGE','subpackages':[");
|
||||
for (Enumeration e = subpackages.keys(); e.hasMoreElements(); ) {
|
||||
sb.append("'").append(e.nextElement()).append("',");
|
||||
}
|
||||
sb.append("],'classes':[");
|
||||
for (Enumeration e = classes.keys(); e.hasMoreElements(); ) {
|
||||
sb.append("'").append(e.nextElement()).append("',");
|
||||
}
|
||||
sb.append("]}");
|
||||
map.put(name, sb.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public static void appendListFromJar(Hashtable subpackages, Hashtable classes, String path, String prefix) {
|
||||
try {
|
||||
for (Enumeration entries = new ZipFile(path).entries(); entries.hasMoreElements(); ) {
|
||||
String entry = entries.nextElement().toString();
|
||||
int len = entry.length();
|
||||
if (entry.endsWith(".class") && entry.indexOf('$') == -1
|
||||
&& entry.startsWith(prefix)) {
|
||||
int splitPos = entry.indexOf('/', prefix.length());
|
||||
String shortname = entry.substring(prefix.length(), splitPos == -1 ? entry.length()-6 : splitPos);
|
||||
if (splitPos == -1) {
|
||||
if (!classes.containsKey(shortname))
|
||||
classes.put(shortname, ""); //classes.put(shortname, "{'tag':'CLASSDEF','name':'"+shortname+"'}");
|
||||
}
|
||||
else {
|
||||
if (!subpackages.containsKey(shortname))
|
||||
subpackages.put(shortname, ""); //subpackages.put(shortname, "{'tag':'PACKAGE','name':'" +shortname+"'}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Throwable e) {
|
||||
//e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void appendListFromFolder(Hashtable subpackages, Hashtable classes, String path, String prefix) {
|
||||
try {
|
||||
String fullPath = path + "/" + prefix;
|
||||
File file = new File(fullPath);
|
||||
if (file.isDirectory()) {
|
||||
String[] descents = file.list();
|
||||
for (int i = 0; i < descents.length; i++) {
|
||||
if (descents[i].indexOf('$') == -1) {
|
||||
if (descents[i].endsWith(".class")) {
|
||||
String shortname = descents[i].substring(0, descents[i].length()-6);
|
||||
if (!classes.containsKey(shortname))
|
||||
classes.put(shortname, "");
|
||||
}
|
||||
else if ((new File(fullPath + "/" + descents[i])).isDirectory()) {
|
||||
if (!subpackages.containsKey(descents[i]))
|
||||
subpackages.put(descents[i], "");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Throwable e) {
|
||||
}
|
||||
}
|
||||
|
||||
private static int INDEX_PACKAGE = 0;
|
||||
private static int INDEX_CLASS = 1;
|
||||
|
||||
// generate information of all packages in jar files.
|
||||
public static String getPackageList() {
|
||||
Hashtable map = new Hashtable();
|
||||
|
||||
for (Enumeration e = collectClassPath().keys(); e.hasMoreElements(); ) {
|
||||
String path = (String)e.nextElement();
|
||||
if (path.endsWith(".jar") || path.endsWith(".zip"))
|
||||
appendListFromJar(path, map);
|
||||
}
|
||||
|
||||
StringBuffer sb = new StringBuffer(4096);
|
||||
sb.append("{");
|
||||
//sb.append("'*':'").append( map.remove("") ).append("',"); // default package
|
||||
for (Enumeration e = map.keys(); e.hasMoreElements(); ) {
|
||||
String s = (String)e.nextElement();
|
||||
StringBuffer[] sbs = (StringBuffer[])map.get(s);
|
||||
sb.append("'").append( s.replace('/', '.') ).append("':")
|
||||
.append("{'tag':'PACKAGE'");
|
||||
if (sbs[INDEX_PACKAGE].length() > 0)
|
||||
sb.append(",'subpackages':[").append(sbs[INDEX_PACKAGE]).append("]");
|
||||
if (sbs[INDEX_CLASS].length() > 0)
|
||||
sb.append(",'classes':[").append(sbs[INDEX_CLASS]).append("]");
|
||||
sb.append("},");
|
||||
}
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
|
||||
}
|
||||
|
||||
public static void appendListFromJar(String path, Hashtable map) {
|
||||
try {
|
||||
for (Enumeration entries = new ZipFile(path).entries(); entries.hasMoreElements(); ) {
|
||||
String entry = entries.nextElement().toString();
|
||||
int len = entry.length();
|
||||
if (entry.endsWith(".class") && entry.indexOf('$') == -1) {
|
||||
int slashpos = entry.lastIndexOf('/');
|
||||
String parent = entry.substring(0, slashpos);
|
||||
String child = entry.substring(slashpos+1, len-6);
|
||||
putItem(map, parent, child, INDEX_CLASS);
|
||||
|
||||
slashpos = parent.lastIndexOf('/');
|
||||
if (slashpos != -1) {
|
||||
AddToParent(map, parent.substring(0, slashpos), parent.substring(slashpos+1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Throwable e) {
|
||||
//e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void putItem(Hashtable map, String parent, String child, int index) {
|
||||
StringBuffer[] sbs = (StringBuffer[])map.get(parent);
|
||||
if (sbs == null) {
|
||||
sbs = new StringBuffer[] { new StringBuffer(256), // packages
|
||||
new StringBuffer(256) // classes
|
||||
};
|
||||
}
|
||||
if (sbs[index].toString().indexOf("'" + child + "',") == -1)
|
||||
sbs[index].append("'").append(child).append("',");
|
||||
map.put(parent, sbs);
|
||||
}
|
||||
|
||||
public static void AddToParent(Hashtable map, String parent, String child) {
|
||||
putItem(map, parent, child, INDEX_PACKAGE);
|
||||
|
||||
int slashpos = parent.lastIndexOf('/');
|
||||
if (slashpos != -1) {
|
||||
AddToParent(map, parent.substring(0, slashpos), parent.substring(slashpos+1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static String getClassInfo(String className) {
|
||||
Hashtable mapClasses = new Hashtable();
|
||||
try {
|
||||
Class clazz = Class.forName(className);
|
||||
putClassInfo(mapClasses, clazz);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
}
|
||||
|
||||
if (mapClasses.size() == 1) {
|
||||
return mapClasses.get(className).toString(); // return {...}
|
||||
}
|
||||
else if (mapClasses.size() > 1) {
|
||||
StringBuffer sb = new StringBuffer(4096);
|
||||
sb.append("[");
|
||||
for (Enumeration e = mapClasses.keys(); e.hasMoreElements(); ) {
|
||||
String s = (String)e.nextElement();
|
||||
sb.append(mapClasses.get(s)).append(",");
|
||||
}
|
||||
sb.append("]");
|
||||
return sb.toString(); // return [...]
|
||||
}
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
private static void putClassInfo(Hashtable map, Class clazz) {
|
||||
if (map.containsKey(clazz.getName()))
|
||||
return ;
|
||||
|
||||
try {
|
||||
StringBuffer sb = new StringBuffer(1024);
|
||||
sb.append("{")
|
||||
.append("'tag':'CLASSDEF',").append(NEWLINE)
|
||||
.append("'flags':'").append(Integer.toString(clazz.getModifiers(), 2)).append("',").append(NEWLINE)
|
||||
.append("'name':'").append(clazz.getName().replace('$', '.')).append("',").append(NEWLINE)
|
||||
//.append("'package':'").append(clazz.getPackage().getName()).append("',").append(NEWLINE) // no getPackage() in JDK1.1
|
||||
.append("'classpath':'1',").append(NEWLINE)
|
||||
.append("'fqn':'").append(clazz.getName().replace('$', '.')).append("',").append(NEWLINE);
|
||||
|
||||
Class[] interfaces = clazz.getInterfaces();
|
||||
if (clazz.isInterface()) {
|
||||
sb.append("'extends':[");
|
||||
} else {
|
||||
Class superclass = clazz.getSuperclass();
|
||||
if (superclass != null && !"java.lang.Object".equals(superclass.getName())) {
|
||||
sb.append("'extends':['").append(superclass.getName().replace('$', '.')).append("'],").append(NEWLINE);
|
||||
putClassInfo(map, superclass); // !!
|
||||
}
|
||||
sb.append("'implements':[");
|
||||
}
|
||||
for (int i = 0, n = interfaces.length; i < n; i++) {
|
||||
sb.append("'").append(interfaces[i].getName().replace('$', '.')).append("',");
|
||||
putClassInfo(map, interfaces[i]); // !!
|
||||
}
|
||||
sb.append("],").append(NEWLINE);;
|
||||
|
||||
Constructor[] ctors = clazz.getConstructors();
|
||||
sb.append("'ctors':[");
|
||||
for (int i = 0, n = ctors.length; i < n; i++) {
|
||||
Constructor ctor = ctors[i];
|
||||
sb.append("{");
|
||||
appendModifier(sb, ctor.getModifiers());
|
||||
appendParameterTypes(sb, ctor.getParameterTypes());
|
||||
sb.append(KEY_DESCRIPTION).append("'").append(ctors[i].toString()).append("'");
|
||||
sb.append("},").append(NEWLINE);
|
||||
}
|
||||
sb.append("], ").append(NEWLINE);
|
||||
|
||||
Field[] fields = clazz.getFields();
|
||||
//java.util.Arrays.sort(fields, comparator);
|
||||
sb.append("'fields':[");
|
||||
for (int i = 0, n = fields.length; i < n; i++) {
|
||||
Field f = fields[i];
|
||||
int modifier = f.getModifiers();
|
||||
sb.append("{");
|
||||
sb.append(KEY_NAME).append("'").append(f.getName()).append("',");
|
||||
if (!f.getDeclaringClass().getName().equals(clazz.getName()))
|
||||
sb.append(KEY_DECLARING_CLASS).append("'").append(f.getDeclaringClass().getName()).append("',");
|
||||
appendModifier(sb, modifier);
|
||||
sb.append(KEY_TYPE).append("'").append(f.getType().getName()).append("'");
|
||||
sb.append("},").append(NEWLINE);
|
||||
}
|
||||
sb.append("], ").append(NEWLINE);
|
||||
|
||||
Method[] methods = clazz.getMethods();
|
||||
//java.util.Arrays.sort(methods, comparator);
|
||||
sb.append("'methods':[");
|
||||
for (int i = 0, n = methods.length; i < n; i++) {
|
||||
Method m = methods[i];
|
||||
int modifier = m.getModifiers();
|
||||
sb.append("{");
|
||||
sb.append(KEY_NAME).append("'").append(m.getName()).append("',");
|
||||
if (!m.getDeclaringClass().getName().equals(clazz.getName()))
|
||||
sb.append(KEY_DECLARING_CLASS).append("'").append(m.getDeclaringClass().getName()).append("',");
|
||||
appendModifier(sb, modifier);
|
||||
sb.append(KEY_RETURNTYPE).append("'").append(m.getReturnType().getName()).append("',");
|
||||
appendParameterTypes(sb, m.getParameterTypes());
|
||||
sb.append(KEY_DESCRIPTION).append("'").append(m.toString()).append("'");
|
||||
sb.append("},").append(NEWLINE);
|
||||
}
|
||||
sb.append("], ").append(NEWLINE);
|
||||
|
||||
Class[] classes = clazz.getClasses();
|
||||
sb.append("'classes': [");
|
||||
for (int i = 0, n = classes.length; i < n; i++) {
|
||||
Class c = classes[i];
|
||||
sb.append("'").append(c.getName().replace('$', '.')).append("',");
|
||||
putClassInfo(map, c); // !!
|
||||
}
|
||||
sb.append("], ").append(NEWLINE);
|
||||
|
||||
appendDeclaredMembers(map, clazz, sb);
|
||||
|
||||
sb.append("}");
|
||||
map.put(clazz.getName(), sb);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
//ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void appendDeclaredMembers(Hashtable map, Class clazz, StringBuffer sb) {
|
||||
Constructor[] ctors = clazz.getDeclaredConstructors();
|
||||
sb.append("'declared_ctors':[");
|
||||
for (int i = 0, n = ctors.length; i < n; i++) {
|
||||
Constructor ctor = ctors[i];
|
||||
if (!Modifier.isPublic(ctor.getModifiers())) {
|
||||
sb.append("{");
|
||||
appendModifier(sb, ctor.getModifiers());
|
||||
appendParameterTypes(sb, ctor.getParameterTypes());
|
||||
sb.append(KEY_DESCRIPTION).append("'").append(ctors[i].toString()).append("'");
|
||||
sb.append("},").append(NEWLINE);
|
||||
}
|
||||
}
|
||||
sb.append("], ").append(NEWLINE);
|
||||
|
||||
Field[] fields = clazz.getDeclaredFields();
|
||||
sb.append("'declared_fields':[");
|
||||
for (int i = 0, n = fields.length; i < n; i++) {
|
||||
Field f = fields[i];
|
||||
int modifier = f.getModifiers();
|
||||
if (!Modifier.isPublic(modifier)) {
|
||||
sb.append("{");
|
||||
sb.append(KEY_NAME).append("'").append(f.getName()).append("',");
|
||||
if (!f.getDeclaringClass().getName().equals(clazz.getName()))
|
||||
sb.append(KEY_DECLARING_CLASS).append("'").append(f.getDeclaringClass().getName()).append("',");
|
||||
appendModifier(sb, modifier);
|
||||
sb.append(KEY_TYPE).append("'").append(f.getType().getName()).append("'");
|
||||
sb.append("},").append(NEWLINE);
|
||||
}
|
||||
}
|
||||
sb.append("], ").append(NEWLINE);
|
||||
|
||||
Method[] methods = clazz.getDeclaredMethods();
|
||||
sb.append("'declared_methods':[");
|
||||
for (int i = 0, n = methods.length; i < n; i++) {
|
||||
Method m = methods[i];
|
||||
int modifier = m.getModifiers();
|
||||
if (!Modifier.isPublic(modifier)) {
|
||||
sb.append("{");
|
||||
sb.append(KEY_NAME).append("'").append(m.getName()).append("',");
|
||||
if (!m.getDeclaringClass().getName().equals(clazz.getName()))
|
||||
sb.append(KEY_DECLARING_CLASS).append("'").append(m.getDeclaringClass().getName()).append("',");
|
||||
appendModifier(sb, modifier);
|
||||
sb.append(KEY_RETURNTYPE).append("'").append(m.getReturnType().getName()).append("',");
|
||||
appendParameterTypes(sb, m.getParameterTypes());
|
||||
sb.append(KEY_DESCRIPTION).append("'").append(m.toString()).append("'");
|
||||
sb.append("},").append(NEWLINE);
|
||||
}
|
||||
}
|
||||
sb.append("], ").append(NEWLINE);
|
||||
|
||||
Class[] classes = clazz.getDeclaredClasses();
|
||||
sb.append("'declared_classes': [");
|
||||
for (int i = 0, n = classes.length; i < n; i++) {
|
||||
Class c = classes[i];
|
||||
if (!Modifier.isPublic(c.getModifiers())) {
|
||||
sb.append("'").append(c.getName().replace('$', '.')).append("',");
|
||||
putClassInfo(map, c); // !!
|
||||
}
|
||||
}
|
||||
sb.append("], ").append(NEWLINE);
|
||||
}
|
||||
|
||||
private static void appendModifier(StringBuffer sb, int modifier) {
|
||||
sb.append(KEY_MODIFIER).append("'").append(Integer.toString(modifier, 2)).append("', ");
|
||||
}
|
||||
|
||||
private static void appendParameterTypes(StringBuffer sb, Class[] paramTypes) {
|
||||
if (paramTypes.length == 0) return ;
|
||||
|
||||
sb.append(KEY_PARAMETERTYPES).append("[");
|
||||
for (int j = 0; j < paramTypes.length; j++) {
|
||||
sb.append("'").append(paramTypes[j].getName()).append("',");
|
||||
}
|
||||
sb.append("],");
|
||||
}
|
||||
|
||||
private static boolean isBlank(String str) {
|
||||
int len;
|
||||
if (str == null || (len = str.length()) == 0)
|
||||
return true;
|
||||
for (int i = 0; i < len; i++)
|
||||
if ((Character.isWhitespace(str.charAt(i)) == false))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
// test methods
|
||||
|
||||
static void debug(String s) {
|
||||
if (debug_mode)
|
||||
System.out.println(s);
|
||||
}
|
||||
static void output(String s) {
|
||||
if (!debug_mode)
|
||||
System.out.print(s);
|
||||
}
|
||||
|
||||
|
||||
private static void usage() {
|
||||
System.out.println("Reflection for javacomplete (" + VERSION + ")");
|
||||
System.out.println(" java [-classpath] Reflection [-c] [-d] [-e] [-h] [-v] [-p] [-s] name[,comma_separated_name_list]");
|
||||
System.out.println("Options:");
|
||||
System.out.println(" -a list all members in alphabetic order");
|
||||
System.out.println(" -c list constructors");
|
||||
System.out.println(" -C return class info");
|
||||
System.out.println(" -d default strategy, i.e. instance fields, instance methods, static fields, static methods");
|
||||
System.out.println(" -e check class existed");
|
||||
System.out.println(" -E check class existed and read class information");
|
||||
System.out.println(" -D debug mode");
|
||||
System.out.println(" -p list package content");
|
||||
System.out.println(" -P print all package info in the Vim dictionary format");
|
||||
System.out.println(" -s list static fields and methods");
|
||||
System.out.println(" -h help");
|
||||
System.out.println(" -v version");
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String className = null;
|
||||
int option = 0x0;
|
||||
boolean wholeClassInfo = false;
|
||||
boolean onlyStatic = false;
|
||||
boolean onlyConstructor = false;
|
||||
boolean listPackageContent = false;
|
||||
boolean checkExisted = false;
|
||||
boolean checkExistedAndRead = false;
|
||||
boolean allPackageInfo = false;
|
||||
|
||||
for (int i = 0, n = args.length; i < n && !isBlank(args[i]); i++) {
|
||||
//debug(args[i]);
|
||||
if (args[i].charAt(0) == '-') {
|
||||
if (args[i].length() > 1) {
|
||||
switch (args[i].charAt(1)) {
|
||||
case 'a':
|
||||
break;
|
||||
case 'c': // request constructors
|
||||
option = option | OPTION_CONSTRUCTOR;
|
||||
onlyConstructor = true;
|
||||
break;
|
||||
case 'C': // class info
|
||||
wholeClassInfo = true;
|
||||
break;
|
||||
case 'd': // default strategy
|
||||
option = option | STRATEGY_DEFAULT;
|
||||
break;
|
||||
case 'D': // debug mode
|
||||
debug_mode = true;
|
||||
break;
|
||||
case 'e': // class existed
|
||||
checkExisted = true;
|
||||
break;
|
||||
case 'E': // check existed and read class information
|
||||
checkExistedAndRead = true;
|
||||
break;
|
||||
case 'h': // help
|
||||
usage();
|
||||
return ;
|
||||
case 'v': // version
|
||||
System.out.println("Reflection for javacomplete (" + VERSION + ")");
|
||||
break;
|
||||
case 'p':
|
||||
listPackageContent = true;
|
||||
break;
|
||||
case 'P':
|
||||
option = RETURN_ALL_PACKAGE_INFO;
|
||||
break;
|
||||
case 's': // request static members
|
||||
option = option | OPTION_STATIC_METHOD | OPTION_STATIC_FIELD;
|
||||
onlyStatic = true;
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
className = args[i];
|
||||
}
|
||||
}
|
||||
if (className == null && (option & RETURN_ALL_PACKAGE_INFO) != RETURN_ALL_PACKAGE_INFO) {
|
||||
return;
|
||||
}
|
||||
if (option == 0x0)
|
||||
option = OPTION_INSTANCE;
|
||||
|
||||
if (wholeClassInfo)
|
||||
output( getClassInfo(className) );
|
||||
else if ((option & RETURN_ALL_PACKAGE_INFO) == RETURN_ALL_PACKAGE_INFO)
|
||||
output( getPackageList() );
|
||||
else if (checkExistedAndRead)
|
||||
output( existedAndRead(className) );
|
||||
else if (checkExisted)
|
||||
output( String.valueOf(existed(className)) );
|
||||
else if (listPackageContent)
|
||||
output( getPackageList(className) );
|
||||
}
|
||||
}
|
3500
vim/autoload/java_parser.vim
Normal file
3500
vim/autoload/java_parser.vim
Normal file
File diff suppressed because it is too large
Load diff
2932
vim/autoload/javacomplete.vim
Normal file
2932
vim/autoload/javacomplete.vim
Normal file
File diff suppressed because it is too large
Load diff
55
vim/autoload/togglebg.vim
Normal file
55
vim/autoload/togglebg.vim
Normal file
|
@ -0,0 +1,55 @@
|
|||
" Toggle Background
|
||||
" Modified: 2011 Apr 29
|
||||
" Maintainer: Ethan Schoonover
|
||||
" License: OSI approved MIT license
|
||||
|
||||
if exists("g:loaded_togglebg")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_togglebg = 1
|
||||
|
||||
" noremap is a bit misleading here if you are unused to vim mapping.
|
||||
" in fact, there is remapping, but only of script locally defined remaps, in
|
||||
" this case <SID>TogBG. The <script> argument modifies the noremap scope in
|
||||
" this regard (and the noremenu below).
|
||||
nnoremap <unique> <script> <Plug>ToggleBackground <SID>TogBG
|
||||
inoremap <unique> <script> <Plug>ToggleBackground <ESC><SID>TogBG<ESC>a
|
||||
vnoremap <unique> <script> <Plug>ToggleBackground <ESC><SID>TogBG<ESC>gv
|
||||
nnoremenu <script> Window.Toggle\ Background <SID>TogBG
|
||||
inoremenu <script> Window.Toggle\ Background <ESC><SID>TogBG<ESC>a
|
||||
vnoremenu <script> Window.Toggle\ Background <ESC><SID>TogBG<ESC>gv
|
||||
tmenu Window.Toggle\ Background Toggle light and dark background modes
|
||||
nnoremenu <script> ToolBar.togglebg <SID>TogBG
|
||||
inoremenu <script> ToolBar.togglebg <ESC><SID>TogBG<ESC>a
|
||||
vnoremenu <script> ToolBar.togglebg <ESC><SID>TogBG<ESC>gv
|
||||
tmenu ToolBar.togglebg Toggle light and dark background modes
|
||||
noremap <SID>TogBG :call <SID>TogBG()<CR>
|
||||
|
||||
function! s:TogBG()
|
||||
let &background = ( &background == "dark"? "light" : "dark" )
|
||||
if exists("g:colors_name")
|
||||
exe "colorscheme " . g:colors_name
|
||||
endif
|
||||
endfunction
|
||||
|
||||
if !exists(":ToggleBG")
|
||||
command ToggleBG :call s:TogBG()
|
||||
endif
|
||||
|
||||
function! ToggleBackground()
|
||||
echo "Please update your ToggleBackground mapping. ':help togglebg' for information."
|
||||
endfunction
|
||||
|
||||
function! togglebg#map(mapActivation)
|
||||
try
|
||||
exe "silent! nmap <unique> ".a:mapActivation." <Plug>ToggleBackground"
|
||||
exe "silent! imap <unique> ".a:mapActivation." <Plug>ToggleBackground"
|
||||
exe "silent! vmap <unique> ".a:mapActivation." <Plug>ToggleBackground"
|
||||
finally
|
||||
return 0
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
if !exists("no_plugin_maps") && !hasmapto('<Plug>ToggleBackground')
|
||||
call togglebg#map("<F5>")
|
||||
endif
|
BIN
vim/bitmaps/togglebg.png
Normal file
BIN
vim/bitmaps/togglebg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
1
vim/bundle/AutoComplPop
Submodule
1
vim/bundle/AutoComplPop
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 84ec18dfc503bebd863ddce108ee4503c334b615
|
1
vim/bundle/Vundle.vim
Submodule
1
vim/bundle/Vundle.vim
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit cfd3b2d388a8c2e9903d7a9d80a65539aabfe933
|
1
vim/bundle/ctrlp.vim
Submodule
1
vim/bundle/ctrlp.vim
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit b5d3fe66a58a13d2ff8b6391f4387608496a030f
|
1
vim/bundle/delimitMate
Submodule
1
vim/bundle/delimitMate
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit d24ad6b301685cd3b9278420248cc780fdc8fc59
|
1
vim/bundle/mirodark
Submodule
1
vim/bundle/mirodark
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 310a8d1ba9ed14db6126d2d979863e34f33f67ee
|
1
vim/bundle/molokai
Submodule
1
vim/bundle/molokai
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit db8ce13b3737d3ddea8368498183d7c204a762eb
|
1
vim/bundle/nerdtree
Submodule
1
vim/bundle/nerdtree
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit bcf3de4fdffae45fc7c85b6b84a01b37177924aa
|
1
vim/bundle/python-mode
Submodule
1
vim/bundle/python-mode
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 9c8468e83232c3e45b730d2d0b28d609053dec05
|
1
vim/bundle/snipmate.vim
Submodule
1
vim/bundle/snipmate.vim
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit bb095e897118ff7a86b60f6ee7df254fa2d39f18
|
1
vim/bundle/tabular
Submodule
1
vim/bundle/tabular
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 60f25648814f0695eeb6c1040d97adca93c4e0bb
|
1
vim/bundle/tagbar
Submodule
1
vim/bundle/tagbar
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 7b36c46d17d57db34fdb0adac9ba6382d0bb5e66
|
1
vim/bundle/undotree
Submodule
1
vim/bundle/undotree
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit fa018f38252f58073f2987f8bf0d2d4a61e07277
|
1
vim/bundle/vim-easymotion
Submodule
1
vim/bundle/vim-easymotion
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 0806257ca6432ac7beb75c4319dadf7f3ba9907b
|
1
vim/bundle/vim-multiple-cursors
Submodule
1
vim/bundle/vim-multiple-cursors
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit e37b9358980d312c1f4fbbcb4a36d1a9d4bdb415
|
1
vim/bundle/vim-perl
Submodule
1
vim/bundle/vim-perl
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 5df54184b9cf772527592e9db90b2ce7e4ca3a05
|
1
vim/bundle/vim-startify
Submodule
1
vim/bundle/vim-startify
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 64a40a916df0e3cd76fa11cc72a8bfaee4ef25a2
|
1
vim/bundle/vim-surround
Submodule
1
vim/bundle/vim-surround
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 2d05440ad23f97a7874ebd9b5de3a0e65d25d85c
|
5219
vim/colors/solarized.vim
Normal file
5219
vim/colors/solarized.vim
Normal file
File diff suppressed because it is too large
Load diff
568
vim/doc/javacomplete.txt
Normal file
568
vim/doc/javacomplete.txt
Normal file
|
@ -0,0 +1,568 @@
|
|||
*javacomplete.txt* For Vim version 7.0 and above. Last change: 2011-01-30
|
||||
|
||||
JAVACOMPLETE REFERENCE MANUAL by cheng fang~
|
||||
fangread@yahoo.com.cn~
|
||||
|
||||
|
||||
1. Overview |javacomplete-overview|
|
||||
1.1 Features |javacomplete-features|
|
||||
1.2 Requirements |javacomplete-requirements|
|
||||
1.3 Download |javacomplete-download|
|
||||
1.4 Install |javacomplete-install|
|
||||
2. Usage |javacomplete-usage|
|
||||
2.1 Input contexts |javacomplete-contexts|
|
||||
2.2 Kind letter |javacomplete-kindletter|
|
||||
2.3 Options |javacomplete-options|
|
||||
2.4 Commands |javacomplete-commands|
|
||||
3. Java parser in Vim |javacomplete-parser|
|
||||
3.1 Abstract Syntax Tree |javacomplete-ast|
|
||||
3.2 Global Constants |javacomplete-constants|
|
||||
3.3 Parsing Functions |javacomplete-functions|
|
||||
3.4 Sample |javacomplete-sample|
|
||||
4. FAQ |javacomplete-faq|
|
||||
5. Limitations |javacomplete-limitations|
|
||||
6. History
|
||||
6.1 javacomplete |javacomplete-history|
|
||||
6.2 Parser |java-parser-history|
|
||||
6.2 Reflection.java |javacomplete-reflection|
|
||||
7. Todo |javacomplete-todo|
|
||||
8. Thanks |javacomplete-thanks|
|
||||
|
||||
==============================================================================
|
||||
1. Overview *javacomplete-overview*
|
||||
|
||||
This is javacomplete, an omni-completion script of JAVA language for vim 7 and
|
||||
above. It includes javacomplete.vim, java_parser.vim, Reflection.java, and
|
||||
javacomplete.txt.
|
||||
|
||||
1.1 Features *javacomplete-features*
|
||||
|
||||
- List members of a class, including (static) fields, (static) methods and ctors.
|
||||
- List classes or subpackages of a package.
|
||||
- Provide parameters information of a method, list all overload methods.
|
||||
- Complete an incomplete word.
|
||||
- Provide a complete JAVA parser written in Vim script language.
|
||||
- Use the JVM to obtain most information.
|
||||
- Use the embedded parser to obtain the class information from source files.
|
||||
- Tags generated by ctags can also be used.
|
||||
- JSP is supported, Builtin objects such as request, session can be recognized.
|
||||
The classes and jar files in the WEB-INF will be appended automatically to the classpath.
|
||||
|
||||
1.2 Requirements *javacomplete-requirements*
|
||||
|
||||
It works on all the platforms wherever
|
||||
- Vim version 7.0 and above,
|
||||
- JDK version 1.1 and above,
|
||||
exists.
|
||||
|
||||
1.3 Download *javacomplete-download*
|
||||
|
||||
You can download the lastest version from this url:
|
||||
http://www.vim.org/scripts/script.php?script_id=1785
|
||||
|
||||
1.4 Install *javacomplete-install*
|
||||
|
||||
1. Unzip javacomplete.zip to a directory of 'runtimepath', e.g.
|
||||
$HOME/.vim (unix/linux), $VIM/vimfiles (windows). >
|
||||
> unzip javacomplete.zip -d ~/.vim
|
||||
|
||||
< To update Vim help tags, run vim and run command: >
|
||||
:helptags $HOME/.vim/doc
|
||||
< or >
|
||||
:helptags $VIM/vimfiles/doc
|
||||
|
||||
NOTE: javacomplete.vim, java_parser.vim and Reflection.java should be in one
|
||||
autoload directory of 'runtimepath'.
|
||||
javacomplete.txt should be in one doc directory of 'runtimepath'.
|
||||
|
||||
2. Set 'omnifunc' option. e.g. >
|
||||
:setlocal omnifunc=javacomplete#Complete
|
||||
< Or, use autocmd: >
|
||||
:" Only do this part when compiled with support for autocommands.
|
||||
:if has("autocmd")
|
||||
: autocmd Filetype java setlocal omnifunc=javacomplete#Complete
|
||||
:endif
|
||||
You can add this command to your .vimrc or _vimrc.
|
||||
|
||||
3. Set 'completefunc' option to show parameters information IF YOU LIKE. e.g. >
|
||||
:setlocal completefunc=javacomplete#CompleteParamsInfo
|
||||
You can map as follows for better display: >
|
||||
:inoremap <buffer> <C-X><C-U> <C-X><C-U><C-P>
|
||||
:inoremap <buffer> <C-S-Space> <C-X><C-U><C-P>
|
||||
|
||||
4. Reflection.java will be automatcally compiled and placed to $HOME when you
|
||||
use first time. Assure that Reflection.java is in the same directory with
|
||||
javacomplete.vim to be searched in autoload subdirectory of &rtp.
|
||||
If no Reflection.class is generated, check that you have the write permission
|
||||
in $HOME directory.
|
||||
If a previous Reflection.java is not compatible with the new version
|
||||
javacomplete.vim, please compile Reflection.java manually.
|
||||
|
||||
==============================================================================
|
||||
2. Usage *javacomplete-usage*
|
||||
|
||||
You can use it like other omni-completion script. Many samples of input context
|
||||
are gived in the following section.
|
||||
|
||||
Make sure a JVM launcher (default 'java') can be searched in the PATH enviroment
|
||||
variable, otherwise Use javacomplete#SetJVMLauncher() to specify one. See option
|
||||
`javacomplete-launcher`.
|
||||
|
||||
See FAQ in time if some problem occurs. When meeting other problems not
|
||||
described in FAQ, you can contact with the auther by the following e-mail:
|
||||
fangread@yahoo.com.cn
|
||||
|
||||
2.1 Input contexts |javacomplete-contexts|
|
||||
It recognize nearly all kinds of Primary Expressions (see langspec-3.0)
|
||||
except for "Primary.new Indentifier". Casting conversion is also supported.
|
||||
|
||||
Samples of input contexts are as following: (Note that '|' indicates cursor)
|
||||
(1). after '.', list members of a class or a package
|
||||
- package.| subpackages and classes of a package
|
||||
- Type.| static members of the 'Type' class and "class"
|
||||
- var.| or field.| members of a variable or a field
|
||||
- method().| members of result of method()
|
||||
- this.| members of the current class
|
||||
- ClassName.this.| members of the qualified class
|
||||
- super.| members of the super class
|
||||
- array.| members of an array object
|
||||
- array[i].| array access, return members of the element of array
|
||||
- "String".| String literal, return members of java.lang.String
|
||||
- int.| or void.| primitive type or pseudo-type, return "class"
|
||||
- int[].| array type, return members of a array type and "class"
|
||||
- java.lang.String[].|
|
||||
- new int[].| members of the new array instance
|
||||
- new java.lang.String[i=1][].|
|
||||
- new Type().| members of the new class instance
|
||||
- Type.class.| class literal, return members of java.lang.Class
|
||||
- void.class.| or int.class.|
|
||||
- ((Type)var).| cast var as Type, return members of Type.
|
||||
- (var.method()).| same with "var.|"
|
||||
- (new Class()).| same with "new Class().|"
|
||||
|
||||
(2). after '(', list matching methods with parameters information.
|
||||
- method(|) methods matched
|
||||
- var.method(|) methods matched
|
||||
- new ClassName(|) constructors matched
|
||||
- this(|) constructors of current class matched
|
||||
- super(|) constructors of super class matched
|
||||
Any place between '(' and ')' will be supported soon.
|
||||
Help information of javadoc is not supported yet.
|
||||
|
||||
(3). after an incomplete word, list all the matched beginning with it.
|
||||
- var.ab| subset of members of var beginning with `ab`
|
||||
- ab| list of all maybes
|
||||
|
||||
(4). import statement
|
||||
- " import java.util.|"
|
||||
- " import java.ut|"
|
||||
- " import ja|"
|
||||
- " import java.lang.Character.|" e.g. "Subset"
|
||||
- " import static java.lang.Math.|" e.g. "PI, abs"
|
||||
|
||||
(5). package declaration
|
||||
- " package com.|"
|
||||
|
||||
The above are in simple expression.
|
||||
(6). after compound expression:
|
||||
- PrimaryExpr.var.|
|
||||
- PrimaryExpr.method().|
|
||||
- PrimaryExpr.method(|)
|
||||
- PrimaryExpr.var.ab|
|
||||
e.g.
|
||||
- "java.lang . System.in .|"
|
||||
- "java.lang.System.getenv().|"
|
||||
- "int.class.toString().|"
|
||||
- "list.toArray().|"
|
||||
- "new ZipFile(path).|"
|
||||
- "new ZipFile(path).entries().|"
|
||||
|
||||
(7). Nested expression:
|
||||
- "System.out.println( str.| )"
|
||||
- "System.out.println(str.charAt(| )"
|
||||
- "for (int i = 0; i < str.|; i++)"
|
||||
- "for ( Object o : a.getCollect| )"
|
||||
|
||||
|
||||
2.2 Kind letter *javacomplete-kindletter*
|
||||
|
||||
A single letter indicates the kind of compeltion item. These kinds are:
|
||||
+ ctor
|
||||
v local variable or parameter
|
||||
f nonstatic field
|
||||
F static field
|
||||
m nonstatic method
|
||||
M static method
|
||||
P package
|
||||
C class type
|
||||
I interface type
|
||||
|
||||
2.3 Options *javacomplete-options*
|
||||
|
||||
1. Set java compiler (default 'javac') using the following function:
|
||||
javacomplete#SetCompiler('javac') *javacomplete-compiler*
|
||||
|
||||
2. Set java launcher (default 'java') using the following function:
|
||||
javacomplete#SetJVMLauncher('java') *javacomplete-launcher*
|
||||
|
||||
3. Set classpath using the following function: >
|
||||
javacomplete#AddClassPath('jarfile_or_classes_path')
|
||||
javacomplete#DelClassPath('jarfile_or_classes_path')
|
||||
javacomplete#SetClassPath('semicolon_separated_string')
|
||||
<
|
||||
Another two variables will be used if they are existing:
|
||||
|g:java_classpath| global classpath
|
||||
|b:classpath| associated with current buffer
|
||||
In one sense, s:classpath is like a classpath option for a PROJECT.
|
||||
If some of them are body set, the priority of these variables is:
|
||||
first, b:classpath first,
|
||||
second, s:classpath
|
||||
third, g:java_classpath
|
||||
last, $CLASSPATH
|
||||
|
||||
4. Set sourcepath using the following function: >
|
||||
javacomplete#AddSourcePath('sources_file_path')
|
||||
javacomplete#DelSourcePath('sources_file_path')
|
||||
javacomplete#SetSourcePath('sources_file_path')
|
||||
|
||||
5. Set option for using JDK1.1 if you meet the problem described in FAQ 3: >
|
||||
javacomplete#UseJDK11()
|
||||
|
||||
6. Set methods to search declaration: >
|
||||
" 1 - by builtin searchdecl(), quickest but inaccurate in many cases.
|
||||
" 2 - by special Searchdecl(), work NOT WELL YET.
|
||||
" 4 - by java_parser, slowest but accurate in most cases. Not for JSP.
|
||||
javacomplete#SetSearchdeclMethod()
|
||||
|
||||
2.4 Commands *javacomplete-commands*
|
||||
|
||||
==============================================================================
|
||||
3. Java parser in Vim *javacomplete-parser*
|
||||
|
||||
3.1 Abstract Syntax Tree *javacomplete-ast*
|
||||
|
||||
3.2 Global Constants *javacomplete-constants*
|
||||
|
||||
3.3 Parsing Functions *javacomplete-functions*
|
||||
|
||||
3.4 Sample Codes *javacomplete-sample*
|
||||
This parser can be a good candidate for anyone who needs a java parser to get
|
||||
a abstract syntax tree for many use. The following are sample codes: >
|
||||
|
||||
" NOTE: The script contains a single parser instance. You cannot create
|
||||
" another parser! The only way to parse another JAVA code is reset the
|
||||
" parser by calling java_parser#InitParser().
|
||||
|
||||
" 1. Initialize the parser
|
||||
" for a code snippet,
|
||||
call java_parser#InitParser(['for (int i = 0; i < N; i++) {', '', '}'])
|
||||
" or for the current buffer,
|
||||
call java_parser#InitParser(getline('^', '$'))
|
||||
" or for a whole source file
|
||||
call java_parser#InitParser(readfile('java/util/Arrays.java'))
|
||||
|
||||
" 2. Get the result tree
|
||||
call java_parser#compilationUnit()
|
||||
" or others according to the input code
|
||||
call java_parser#expression()
|
||||
call java_parser#block()
|
||||
call java_parser#statement()
|
||||
|
||||
" 3. Use the tree as you like
|
||||
|
||||
" 4. The default scan strategy is scanning only sklenton.
|
||||
" You can change it by set the option 'scanStrategy'.
|
||||
" The values for 'scanStrategy' option are:
|
||||
" 0 - only class members when parse full file;
|
||||
" 1 - keep statement as a whole string;
|
||||
" 2 - all
|
||||
call java_parser#InitParser(getline('^', '$'), {'scanStrategy': 2})
|
||||
|
||||
" 5. I recommend that keeping scanStrategy as default.
|
||||
" If you want to parse a code snippet such as a method body of the whole
|
||||
" file, you can call java_parser#GotoPosition() to go to what you are going
|
||||
" to start parsing.
|
||||
" Then, call java_parser#block(), java_parser#statement() or
|
||||
" java_parser#expression() to parse the smaller snippet.
|
||||
" NOTE: This way will keep the result tree reserved.
|
||||
call java_parser#GotoPosition(def.body.pos)
|
||||
call java_parser#block()
|
||||
|
||||
==============================================================================
|
||||
4. FAQ *javacomplete-faq*
|
||||
|
||||
(1). When you meets the following problem: >
|
||||
omni-completion error: Exception in thread "main"
|
||||
java.lang.NoClassDefFoundError: Reflection
|
||||
It is Reflection.class not found in autoload directory or $HOME that cause
|
||||
this problem.
|
||||
There are several reasons causing this problem:
|
||||
o No compiler. Use javacomplete#SetCompiler() to specify one.
|
||||
o No write permission for $HOME directory.
|
||||
|
||||
(2). Reflection.java should be searched in autoload subdirectory of &rtp.
|
||||
Reflection.class should be searched in $HOME or autoload subdirectory of &rtp.
|
||||
If not found, javacomplete try to compile it and place the generated class
|
||||
file in $HOME.
|
||||
|
||||
(3). A error when using JDK1.1:
|
||||
Unable to initialize threads: cannot find class java/lang/Thread
|
||||
When I tested JDK1.1.8 on Windows XP, I found -classpath options cause it.
|
||||
There are two way to avoid it is:
|
||||
o Add the runtime classes to classpath, like
|
||||
"${JDK118}\classes;${JDK118}\lib\classes.zip;${JDK118}\lib\classes.jar;"
|
||||
o Add Reflection.class and others to the CLASSPATH enviroment variable.
|
||||
And call javacomplete#UseJDK11() to set option.
|
||||
|
||||
==============================================================================
|
||||
5. Limitations *javacomplete-limitations*
|
||||
|
||||
The embedded parser works a bit slower than expected.
|
||||
|
||||
==============================================================================
|
||||
6. History
|
||||
|
||||
6.1 javacomplete *javacomplete-history*
|
||||
|
||||
v0.77.1.2
|
||||
2011-01-30 Fixed to adapt globpath() (vim < 7.2). Patched by Sam Lidder.
|
||||
|
||||
v0.77.1.1
|
||||
2010-11-12 Fixed to ignore the 'suffixes' and 'wildignore' options which
|
||||
make Reflection.class can not be found.
|
||||
|
||||
v0.77.1
|
||||
2007-09-19 Supported showing method parameters information in any place
|
||||
between parenthesises.
|
||||
|
||||
v0.77
|
||||
2007-09-19 bug fix
|
||||
2007-09-18 Added GetCurrentFileKey() avoid empty key of s:files for current buffer.
|
||||
2007-09-16 Use a new strategy for searching inherited members.
|
||||
2007-09-11
|
||||
- Supported new contexts "jav|", "var|", just after an incomplete word.
|
||||
- Supported new context "abs(|)", a imported static method.
|
||||
2007-09-10
|
||||
- Improved FoundClassDeclaration()
|
||||
- Fixed bug calling cursor(0, 0)
|
||||
2007-09-09 Rewrote DoGetClassInfo(), GetFQN() and IsFQN()¡£
|
||||
2007-09-08 Fixed a bug when merging superclass's members
|
||||
2007-09-05 -- 07
|
||||
- Improved s:MergeLines() and s:ExtractCleanExpr().
|
||||
- Rewrote CompleteAfterDot(). Added ParseExpr(). Removed s:GetNextSubexprType()
|
||||
- Supported accessible static imported members.
|
||||
- Supported accessible inherited members.
|
||||
|
||||
2007-09-04 Used b:changedtick and getftime() to check buffer (or other file) for changing.
|
||||
2007-09-01 Supported not-file-name toplevel or static member class in source files.
|
||||
|
||||
v0.76.8
|
||||
2007-08-30
|
||||
- Created the s:TreeVisitor to search type or symbol names.
|
||||
- Supported local and anonymous class.
|
||||
|
||||
2007-08-29
|
||||
- Supported appending automatically classpath under WEB-INF for jsp files.
|
||||
|
||||
v0.76.7
|
||||
2007-08-28
|
||||
- Fixed case of "new java.util.zip.ZipFile().|"
|
||||
- Improved process of type arguments and method parameters. JAVA5+
|
||||
- Reorganize codes in javacomplete#Complete()
|
||||
- Added CONTEXT_NEED_TYPE, removed CONTEXT_INCOMPLETE_WORD
|
||||
|
||||
2007-08-24 Add Context types for type declaration: CONTEXT_NEED_TYPE
|
||||
|
||||
v0.76.6
|
||||
2007-08-23 Improved GetStatement() and related. Bug fixed.
|
||||
|
||||
v0.76.5
|
||||
2007-08-21
|
||||
- Fixed bug: "foo().|", "getFoo().foo().|",
|
||||
"for (Enumeration entries = ; entries.|; )".
|
||||
- Supported input contexts: "((Object)o).|", "((Object)o).getClass().|",
|
||||
"new ZipFile(path).|", "(new String().)|".
|
||||
|
||||
v0.76.4
|
||||
2007-08-17
|
||||
- Improved input contexts: "int.class.toString().|", "list.toArray().|".
|
||||
- Fixed recognizing "this(|)", "method1(|)"
|
||||
- Added the 'kind' letter to distinguish between classes and packages.
|
||||
2007-08-14
|
||||
- Support accessible nested classes.
|
||||
- Support import static members and import accessible nested classes.
|
||||
2007-08-11
|
||||
- Fixed a bug when Reflection.java is in the path which contains space.
|
||||
- Improved process of this and super in JSP.
|
||||
- Fixed an severe bug parsing current jsp file.
|
||||
|
||||
v0.76.3
|
||||
2007-08-10
|
||||
- Add an option 'searchdecl' set by javacomplete#SetSearchdeclMethod().
|
||||
- Make an improvement for jsp file.
|
||||
- Clear cache when set options affecting classpath.
|
||||
- Improved DoGetPackageList() and s:GenerateImports().
|
||||
- Replace codes searching list of string with index().
|
||||
|
||||
v0.76.2
|
||||
2007-08-08
|
||||
- Fix failing to list members of nested class.
|
||||
- Combine members of local packages and loadable packages.
|
||||
- Add quick recognition of package or import.
|
||||
2007-08-06 Add inherited fields and methods to local class.
|
||||
|
||||
v0.76.1
|
||||
2007-08-04
|
||||
- Fix using a: in javacomplete#SetClassPath()
|
||||
- Fix a bug in javacomplete#GetClassPath()
|
||||
|
||||
v0.76 2007-08-04
|
||||
2007-08-04
|
||||
- Fix a infinite loop bug in s:GetMatchedIndexEx()
|
||||
- Fix that array type not recognised in compound expression.
|
||||
- Add a option for JDK1.1. See FAQ 3.
|
||||
2007-08-03
|
||||
- Improve for 'this' or 'super'.
|
||||
- Support searching toplevel class in sourcepath.
|
||||
- Clean
|
||||
2007-08-02
|
||||
- Improve the process of checking a class in one of packages.
|
||||
2007-08-01
|
||||
- Add Searchdecl() using java_parser.vim to provide quick information.
|
||||
- Supports input context: "StringLiteral".|, "int.|", "void.|"
|
||||
2007-07-28
|
||||
- Automatcally compile Reflection.java and place it to $HOME.
|
||||
- Add option 'javacompiler', default 'javac'
|
||||
- Add option 'java', default 'java'
|
||||
|
||||
v0.75 2007-02-13
|
||||
- Add java_parser.vim.
|
||||
- Add b:sourcepath option.
|
||||
- Improve recognition of classes defined in current buffer or in source path.
|
||||
- Support generating class information from tags instead of returning list directly.
|
||||
|
||||
v0.74 2007-02-03
|
||||
- Support jre1.2 (and above).
|
||||
- Support input context like "boolean.class.|"
|
||||
- Handle java primitive types like 'int'.
|
||||
|
||||
v0.73 2007-02-01
|
||||
- Fix bug that CLASSPATH not used when b:classpath or g:java_classpath not set.
|
||||
- Fix bug that call filter() without making a copy for incomplete.
|
||||
- Improve recognition of declaration of this class
|
||||
|
||||
v0.72 2007-01-31 Handle nested expression.
|
||||
v0.71 2007-01-28 Add Basic support for class in current folder.
|
||||
v0.70 2007-01-27 Complete the reflection part.
|
||||
v0.60 2007-01-25 Design TClassInfo, etc.
|
||||
v0.50 2007-01-21 Use java and Reflection.class directly.
|
||||
|
||||
|
||||
6.2 Parser *java-parser-history*
|
||||
|
||||
v0.67
|
||||
2007-09-11 Append a error string to imported qid when error occurs.
|
||||
2007-09-10 Improved regexp constants.
|
||||
2007-09-07 Fixed type2Str(). Removed qualident2Str().
|
||||
|
||||
v0.66.1 08-30 Changed classCreatorRest().
|
||||
v0.66 08-27 Minor changes
|
||||
|
||||
v0.65
|
||||
2007-08-23
|
||||
- Improved s:scanComment(), s:Strpart(), s:String2Flags().
|
||||
- Improved recognizing methods, ctors, and variable declarators declared in most common form.
|
||||
- Added s:optFinalParameter(), s:methodDeclaratorRest_opt().
|
||||
- Removed s:GetLine() and s:GetCol().
|
||||
- Rewrote binary functions.
|
||||
|
||||
v0.64
|
||||
2007-08-21
|
||||
- Added quick recognizing fields or methods declared in most common form.
|
||||
- Optimized code: s:modeAndEXPR(), formalParameter(), and others.
|
||||
|
||||
v0.63
|
||||
2007-08-10
|
||||
- Removed the unclear s:tokens and s:modifier_keywords.
|
||||
- Add java_parser#GetSnapshot() and java_parser#Restore().
|
||||
2007-08-09 Fixed a bug when no top level class defined
|
||||
|
||||
v0.62 2007-08-08
|
||||
2007-08-08 Fix values in s:Flags and s:modifiersOpt() and the related.
|
||||
2007-08-07 Optimize code of scanDoubleQuote() and importDeclaration().
|
||||
|
||||
v0.61 2007-08-04
|
||||
2007-08-01 Fix a bug typetag(). return a:token -> return tolower(a:token)
|
||||
2007-07-31
|
||||
- Rename all script functions matching "s:Java_\(\i\+\)" to "s:\1".
|
||||
- Change s:EOI = ''
|
||||
- Use get() instead of s:GetOption(). Remove it.
|
||||
- Use repeat() instead of s:PrependChar(). Remove it.
|
||||
- Improve scanChar()
|
||||
|
||||
v0.60 2007-07-31 Now it nearly is a complete parser and support Java5,6.
|
||||
And tested correctly on all java files in jdk6 src.zip.
|
||||
2007-07-19 Support new language features in java 5 and above.
|
||||
2007-07-25 Add supports for parsing statement, block or expression
|
||||
2007-07-28 Place it to autoload directory.
|
||||
2007-07-30 Clean this script.
|
||||
|
||||
v0.51 2007-02-13 Optimize several scan function.
|
||||
v0.50 2007-02-10 Complete the skeleton.
|
||||
|
||||
|
||||
6.3 Reflection.java *javacomplete-reflection*
|
||||
|
||||
v0.77
|
||||
2007-09-14 Improved generating information of all packages in jar files.
|
||||
2007-09-06
|
||||
- Improved getting paths of all system jar files for different JDKs
|
||||
in different platforms.
|
||||
2007-08-14 Major improvement. Support nontoplevel classes.
|
||||
|
||||
v0.76.3
|
||||
2007-08-09 Redefined '-P' option for returning all packages and subpackages info in one time.
|
||||
|
||||
v0.76.2
|
||||
2007-08-06 Return a modifier value as a string because it more than 32bit.
|
||||
|
||||
v0.76
|
||||
2007-08-04 Support checking and reading package members for '-E'.
|
||||
2007-08-02
|
||||
- Add an option '-E'.
|
||||
- Use ZipFile and ZipEntry instead of JarFile and JarEntry,
|
||||
so that it can be compiled by and run on JDK1.1 and above.
|
||||
v0.7 2007-02-17
|
||||
|
||||
==============================================================================
|
||||
7. Todo *javacomplete-todo*
|
||||
|
||||
- Improve performance of the embedded parser. Incremental parser.
|
||||
- Add quick information using balloonexpr, ballooneval, balloondelay.
|
||||
- Add javadoc
|
||||
- Give a hint for class name conflict in different packages.
|
||||
- Support parameter information for template
|
||||
|
||||
==============================================================================
|
||||
8. Thanks *javacomplete-thanks*
|
||||
* Bram Moolenaar and all Vim contributors for Vim
|
||||
* The insenvim project
|
||||
* The javac and gjc sources
|
||||
* All of you for using this script :)
|
||||
|
||||
* For help, documentation, bug report :
|
||||
Martin Stubenschrott author of IComplete
|
||||
Vissale NEANG author of OmniCppComplete
|
||||
David Fishburn author of SQLComplete and others
|
||||
Nico Weber testing on the Mac
|
||||
Thomas Link testing on cygwin+bash
|
||||
Zhixing Yu
|
||||
* For the bug of 'wildignore' options
|
||||
Rodrigo Rosenfeld Rosas
|
||||
Alexandru Mo?oi
|
||||
|
||||
FeedBack:
|
||||
Any problem, bug or suggest are welcome to send to fangread@yahoo.com.cn
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
254
vim/doc/solarized.txt
Normal file
254
vim/doc/solarized.txt
Normal file
|
@ -0,0 +1,254 @@
|
|||
*solarized.vim* for Vim version 7.3 or newer. Modified: 2011 May 05
|
||||
|
||||
|
||||
Solarized Vim Colorscheme by Ethan Schoonover ~
|
||||
|
||||
Solarized Colorscheme *solarized*
|
||||
*solarized-help*
|
||||
*solarized-colors*
|
||||
*solarized-colorscheme*
|
||||
*vim-colors-solarized*
|
||||
|
||||
Solarized is a carefully designed selective contrast colorscheme with dual
|
||||
light and dark modes that runs in both GUI, 256 and 16 color modes.
|
||||
|
||||
See the homepage at http://ethanschoonover.com/solarized for screenshots and
|
||||
details.
|
||||
|
||||
0. Install |solarized-install|
|
||||
1. Solarized Menu |solarized-menu|
|
||||
2. Options |solarized-options|
|
||||
3. Toggle Background |solarized-togglebg|
|
||||
4. Terminal Issues |solarized-term|
|
||||
|
||||
==============================================================================
|
||||
0. Install *solarized-install*
|
||||
|
||||
Note: I recommend using Tim Pope's pathogen plugin to install this
|
||||
colorscheme. See https://github.com/tpope/vim-pathogen . If you've installed
|
||||
pathogen properly you can install Solarized with the following commands,
|
||||
followed by the .vimrc configuration below.
|
||||
|
||||
$ cd ~/.vim/bundle
|
||||
$ git clone https://github.com/altercation/vim-colors-solarized.git
|
||||
|
||||
If you aren't using pathogen, you can use the following three steps to install
|
||||
Solarized:
|
||||
|
||||
1. Download the solarized distribution (available on the homepage above)
|
||||
and unarchive the file.
|
||||
|
||||
2. Move `solarized.vim` to your `.vim/colors` directory.
|
||||
|
||||
3. Move each of the files in each subdirectories to the corresponding .vim
|
||||
subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload
|
||||
directory as .vim/autoload/togglebg.vim).
|
||||
|
||||
|
||||
After installation, place the following lines in your .vimrc:
|
||||
|
||||
syntax enable
|
||||
set background=dark
|
||||
colorscheme solarized
|
||||
|
||||
or, for the light background mode of Solarized:
|
||||
|
||||
syntax enable
|
||||
set background=light
|
||||
colorscheme solarized
|
||||
|
||||
==============================================================================
|
||||
1. Solarized Menu *solarized-menu*
|
||||
|
||||
Solarized makes available a menu when used in Vim GUI mode (gvim, macvim).
|
||||
This menu includes many of the options detailed below so that you can test out
|
||||
different values quickly without modifying your .vimrc file. If you wish to
|
||||
turn off this menu permanently, simply place the following line in your .vimrc
|
||||
above the "colorscheme solarized" line.
|
||||
|
||||
let g:solarized_menu=0
|
||||
|
||||
==============================================================================
|
||||
2. Toggle Background *solarized-togglebg*
|
||||
*toggle-bg* *togglebg*
|
||||
*toggle-background*
|
||||
|
||||
Solarized comes with Toggle Background, a simple plugin to switch between
|
||||
light and dark background modes and reset the colorscheme. This is most useful
|
||||
for colorschemes that support both light and dark modes and in terminals or
|
||||
gui vim windows where the background will be properly set.
|
||||
|
||||
Toggle Background can be accessed by:
|
||||
|
||||
* the Solarized menu (in Vim gui mode)
|
||||
* the Window menu (in Vim gui mode, even if the Solarized menu is off)
|
||||
* the "yin/yang" toolbar button (in Vim gui mode)
|
||||
* the default mapping of <F5>
|
||||
* custom key mapping you set in your .vimrc (see below)
|
||||
* command line via ":ToggleBG" (no quotes)
|
||||
|
||||
Toggle Background starts with a default mapping to function key <F5>. If you
|
||||
are already using this in a mapping, Toggle Background will not map itself to
|
||||
a default and you will have to map it manually in your .vimrc file, or
|
||||
remove/change your existing <F5> mapping to another value. To customize the
|
||||
keyboard mapping in your .vimrc file, use the following line, changing the
|
||||
"<F5>" value to the key or key combination you wish to use:
|
||||
|
||||
call togglebg#map("<F5>")
|
||||
|
||||
Note that you'll want to use a single function key or equivalent if you want
|
||||
the plugin to work in all modes (normal, insert, visual).
|
||||
|
||||
When using the plugin during normal, visual, or insert mode, there should be
|
||||
no interruption in workflow. However, if you activate the plugin during
|
||||
REPLACE mode, you will switch to standard insert mode (you will leave the
|
||||
overwrite replace mode).
|
||||
|
||||
==============================================================================
|
||||
3. Solarized Terminal Issues *solarized-term*
|
||||
|
||||
If you are going to use Solarized in Terminal mode (i.e. not in a GUI version
|
||||
like gvim or macvim), **please please please** consider setting your terminal
|
||||
emulator's colorscheme to used the Solarized palette. I've included palettes
|
||||
for some popular terminal emulator as well as Xdefaults in the official
|
||||
Solarized download available from the Solarized homepage listed at the top of
|
||||
this help document. If you use Solarized *without* these colors, Solarized
|
||||
will need to be told to degrade its colorscheme to a set compatible with the
|
||||
limited 256 terminal palette (whereas by using the terminal's 16 ansi color
|
||||
values, you can set the correct, specific values for the Solarized palette).
|
||||
|
||||
If you do use the custom terminal colors, solarized.vim should work out of
|
||||
the box for you. If you are using a terminal emulator that supports 256
|
||||
colors and don't want to use the custom Solarized terminal colors, you will
|
||||
need to use the degraded 256 colorscheme. To do so, simply add the following
|
||||
line *before* the `colorschem solarized` line:
|
||||
|
||||
let g:solarized_termcolors=256
|
||||
|
||||
Again, I recommend just changing your terminal colors to Solarized values
|
||||
either manually or via one of the many terminal schemes available for import.
|
||||
|
||||
==============================================================================
|
||||
4. Solarized Options *solarized-options*
|
||||
|
||||
|
||||
AUTOGENERATE OPTIONS
|
||||
|
||||
You can easily modify and experiment with Solarized display options using the
|
||||
Solarized menu when using Vim in gui mode. Once you have things set to your
|
||||
liking, you can autogenerate the current option list in a format ready for
|
||||
insertion into your .vimrc file using the Solarized menu "Autogenerate
|
||||
Options" command or at the command line with:
|
||||
|
||||
:SolarizedOptions
|
||||
|
||||
|
||||
OPTION LIST
|
||||
|
||||
Set these in your vimrc file prior to calling the colorscheme.
|
||||
|
||||
option name default optional
|
||||
------------------------------------------------
|
||||
g:solarized_termcolors= 16 | 256
|
||||
g:solarized_termtrans = 0 | 1
|
||||
g:solarized_degrade = 0 | 1
|
||||
g:solarized_bold = 1 | 0
|
||||
g:solarized_underline = 1 | 0
|
||||
g:solarized_italic = 1 | 0
|
||||
g:solarized_contrast = "normal"| "high" or "low"
|
||||
g:solarized_visibility= "normal"| "high" or "low"
|
||||
g:solarized_hitrail = 0 | 1
|
||||
g:solarized_menu = 1 | 0
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
OPTION DETAILS
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_termcolors= 256 | 16 *'solarized_termcolors'*
|
||||
------------------------------------------------
|
||||
The most important option if you are using vim in terminal (non gui) mode!
|
||||
This tells Solarized to use the 256 degraded color mode if running in a 256
|
||||
color capable terminal. Otherwise, if set to `16` it will use the terminal
|
||||
emulators colorscheme (best option as long as you've set the emulators colors
|
||||
to the Solarized palette).
|
||||
|
||||
If you are going to use Solarized in Terminal mode (i.e. not in a GUI
|
||||
version like gvim or macvim), **please please please** consider setting your
|
||||
terminal emulator's colorscheme to used the Solarized palette. I've included
|
||||
palettes for some popular terminal emulator as well as Xdefaults in the
|
||||
official Solarized download available from:
|
||||
http://ethanschoonover.com/solarized . If you use Solarized without these
|
||||
colors, Solarized will by default use an approximate set of 256 colors. It
|
||||
isn't bad looking and has been extensively tweaked, but it's still not quite
|
||||
the real thing.
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_termtrans = 0 | 1 *'solarized_termtrans'*
|
||||
------------------------------------------------
|
||||
If you use a terminal emulator with a transparent background and Solarized
|
||||
isn't displaying the background color transparently, set this to 1 and
|
||||
Solarized will use the default (transparent) background of the terminal
|
||||
emulator. *urxvt* required this in my testing; iTerm2 did not.
|
||||
|
||||
Note that on Mac OS X Terminal.app, solarized_termtrans is set to 1 by
|
||||
default as this is almost always the best option. The only exception to this
|
||||
is if the working terminfo file supports 256 colors (xterm-256color).
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_degrade = 0 | 1 *'solarized_degrade'*
|
||||
------------------------------------------------
|
||||
For test purposes only; forces Solarized to use the 256 degraded color mode
|
||||
to test the approximate color values for accuracy.
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_bold = 1 | 0 *'solarized_bold'*
|
||||
------------------------------------------------
|
||||
------------------------------------------------
|
||||
g:solarized_underline = 1 | 0 *'solarized_underline'*
|
||||
------------------------------------------------
|
||||
------------------------------------------------
|
||||
g:solarized_italic = 1 | 0 *'solarized_italic'*
|
||||
------------------------------------------------
|
||||
If you wish to stop Solarized from displaying bold, underlined or
|
||||
italicized typefaces, simply assign a zero value to the appropriate
|
||||
variable, for example: `let g:solarized_italic=0`
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_contrast = "normal"| "high" or "low" *'solarized_contrast'*
|
||||
------------------------------------------------
|
||||
Stick with normal! It's been carefully tested. Setting this option to high
|
||||
or low does use the same Solarized palette but simply shifts some values up
|
||||
or down in order to expand or compress the tonal range displayed.
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_visibility = "normal"| "high" or "low" *'solarized_visibility'*
|
||||
------------------------------------------------
|
||||
Special characters such as trailing whitespace, tabs, newlines, when
|
||||
displayed using ":set list" can be set to one of three levels depending on
|
||||
your needs.
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_hitrail = 0 | 1 *'solarized_hitrail'*
|
||||
------------------------------------------------
|
||||
Visibility can make listchar entities more visible, but if one has set
|
||||
cursorline on, these same listchar values standout somewhat less due to the
|
||||
background color of the cursorline. g:solarized_hitrail enables highlighting
|
||||
of trailing spaces (only one of the listchar types, but a particularly
|
||||
important one) while in the cursoline in a different manner in order to make
|
||||
them more visible. This may not work consistently as Solarized is using
|
||||
a pattern match than can be overridden by a more encompassing syntax-native
|
||||
match such as a comment line.
|
||||
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_menu = 1 | 0 *'solarized_menu'*
|
||||
------------------------------------------------
|
||||
Solarized includes a menu providing access to several of the above
|
||||
display related options, including contrast and visibility. This allows
|
||||
for an easy method of testing different values quickly before settling
|
||||
on a final assignment for your .vimrc. If you wish to turn off this menu,
|
||||
assign g:solarized_menu a value of 0.
|
||||
|
||||
|
||||
vim:tw=78:noet:ts=8:ft=help:norl:
|
51
vim/doc/tags
Normal file
51
vim/doc/tags
Normal file
|
@ -0,0 +1,51 @@
|
|||
'solarized_bold' solarized.txt /*'solarized_bold'*
|
||||
'solarized_contrast' solarized.txt /*'solarized_contrast'*
|
||||
'solarized_degrade' solarized.txt /*'solarized_degrade'*
|
||||
'solarized_hitrail' solarized.txt /*'solarized_hitrail'*
|
||||
'solarized_italic' solarized.txt /*'solarized_italic'*
|
||||
'solarized_menu' solarized.txt /*'solarized_menu'*
|
||||
'solarized_termcolors' solarized.txt /*'solarized_termcolors'*
|
||||
'solarized_termtrans' solarized.txt /*'solarized_termtrans'*
|
||||
'solarized_underline' solarized.txt /*'solarized_underline'*
|
||||
'solarized_visibility' solarized.txt /*'solarized_visibility'*
|
||||
before solarized.txt /*before*
|
||||
java-parser-history javacomplete.txt /*java-parser-history*
|
||||
javacomplete-ast javacomplete.txt /*javacomplete-ast*
|
||||
javacomplete-commands javacomplete.txt /*javacomplete-commands*
|
||||
javacomplete-compiler javacomplete.txt /*javacomplete-compiler*
|
||||
javacomplete-constants javacomplete.txt /*javacomplete-constants*
|
||||
javacomplete-download javacomplete.txt /*javacomplete-download*
|
||||
javacomplete-faq javacomplete.txt /*javacomplete-faq*
|
||||
javacomplete-features javacomplete.txt /*javacomplete-features*
|
||||
javacomplete-functions javacomplete.txt /*javacomplete-functions*
|
||||
javacomplete-history javacomplete.txt /*javacomplete-history*
|
||||
javacomplete-install javacomplete.txt /*javacomplete-install*
|
||||
javacomplete-kindletter javacomplete.txt /*javacomplete-kindletter*
|
||||
javacomplete-launcher javacomplete.txt /*javacomplete-launcher*
|
||||
javacomplete-limitations javacomplete.txt /*javacomplete-limitations*
|
||||
javacomplete-options javacomplete.txt /*javacomplete-options*
|
||||
javacomplete-overview javacomplete.txt /*javacomplete-overview*
|
||||
javacomplete-parser javacomplete.txt /*javacomplete-parser*
|
||||
javacomplete-reflection javacomplete.txt /*javacomplete-reflection*
|
||||
javacomplete-requirements javacomplete.txt /*javacomplete-requirements*
|
||||
javacomplete-sample javacomplete.txt /*javacomplete-sample*
|
||||
javacomplete-thanks javacomplete.txt /*javacomplete-thanks*
|
||||
javacomplete-todo javacomplete.txt /*javacomplete-todo*
|
||||
javacomplete-usage javacomplete.txt /*javacomplete-usage*
|
||||
javacomplete.txt javacomplete.txt /*javacomplete.txt*
|
||||
solarized solarized.txt /*solarized*
|
||||
solarized-colors solarized.txt /*solarized-colors*
|
||||
solarized-colorscheme solarized.txt /*solarized-colorscheme*
|
||||
solarized-help solarized.txt /*solarized-help*
|
||||
solarized-install solarized.txt /*solarized-install*
|
||||
solarized-menu solarized.txt /*solarized-menu*
|
||||
solarized-options solarized.txt /*solarized-options*
|
||||
solarized-term solarized.txt /*solarized-term*
|
||||
solarized-togglebg solarized.txt /*solarized-togglebg*
|
||||
solarized.vim solarized.txt /*solarized.vim*
|
||||
toggle-background solarized.txt /*toggle-background*
|
||||
toggle-bg solarized.txt /*toggle-bg*
|
||||
togglebg solarized.txt /*togglebg*
|
||||
urxvt solarized.txt /*urxvt*
|
||||
vim-colors-solarized solarized.txt /*vim-colors-solarized*
|
||||
without solarized.txt /*without*
|
284
vimrc
284
vimrc
|
@ -36,52 +36,52 @@
|
|||
set nocompatible
|
||||
"[Use Plug-ins and Plug-in Manager(Vundle) only on UNIX or MAC OS]"
|
||||
if has("unix") || has("mac")
|
||||
filetype off
|
||||
"[Download and install Vundle Plug-in Manager]"
|
||||
try
|
||||
if !isdirectory(expand("$HOME/.vim/bundle"))
|
||||
silent !mkdir -p $HOME/.vim/bundle
|
||||
silent cd $HOME/.vim/bundle
|
||||
silent !git clone https://github.com/gmarik/Vundle.vim.git
|
||||
silent cd $HOME
|
||||
endif
|
||||
"[Run Plug-ins]"
|
||||
set runtimepath+=$HOME/.vim/bundle/Vundle.vim
|
||||
call vundle#begin()
|
||||
Plugin 'gmarik/Vundle.vim'
|
||||
map <F2> :VundleInstall<CR>
|
||||
map <F3> :VundleUpdate<CR>
|
||||
if has("python")
|
||||
Plugin 'klen/python-mode'
|
||||
endif
|
||||
if has("perl")
|
||||
Plugin 'vim-perl/vim-perl'
|
||||
endif
|
||||
if has("ruby")
|
||||
Plugin 'terryma/vim-multiple-cursors'
|
||||
endif
|
||||
Plugin 'majutsushi/tagbar'
|
||||
map <F4> :TagbarToggle<CR>
|
||||
Plugin 'mbbill/undotree'
|
||||
map <F5> :UndotreeToggle<CR>
|
||||
Plugin 'scrooloose/nerdtree'
|
||||
map <F6> :NERDTreeToggle<CR>
|
||||
Plugin 'AutoComplPop'
|
||||
Plugin 'kien/ctrlp.vim'
|
||||
Plugin 'godlygeek/tabular'
|
||||
Plugin 'tpope/vim-surround'
|
||||
Plugin 'mhinz/vim-startify'
|
||||
Plugin 'Raimondi/delimitMate'
|
||||
Plugin 'msanders/snipmate.vim'
|
||||
Plugin 'Lokaltog/vim-easymotion'
|
||||
"[Vim colorschemes]"
|
||||
Plugin 'tomasr/molokai'
|
||||
Plugin 'djjcast/mirodark'
|
||||
call vundle#end()
|
||||
catch
|
||||
endtry
|
||||
filetype off
|
||||
"[Download and install Vundle Plug-in Manager]"
|
||||
try
|
||||
if !isdirectory(expand("$HOME/.vim/bundle"))
|
||||
silent !mkdir -p $HOME/.vim/bundle
|
||||
silent cd $HOME/.vim/bundle
|
||||
silent !git clone https://github.com/gmarik/Vundle.vim.git
|
||||
silent cd $HOME
|
||||
endif
|
||||
"[Run Plug-ins]"
|
||||
set runtimepath+=$HOME/.vim/bundle/Vundle.vim
|
||||
call vundle#begin()
|
||||
Plugin 'gmarik/Vundle.vim'
|
||||
map <F2> :VundleInstall<CR>
|
||||
map <F3> :VundleUpdate<CR>
|
||||
if has("python")
|
||||
Plugin 'klen/python-mode'
|
||||
endif
|
||||
if has("perl")
|
||||
Plugin 'vim-perl/vim-perl'
|
||||
endif
|
||||
if has("ruby")
|
||||
Plugin 'terryma/vim-multiple-cursors'
|
||||
endif
|
||||
Plugin 'majutsushi/tagbar'
|
||||
map <F4> :TagbarToggle<CR>
|
||||
Plugin 'mbbill/undotree'
|
||||
map <F5> :UndotreeToggle<CR>
|
||||
Plugin 'scrooloose/nerdtree'
|
||||
map <F6> :NERDTreeToggle<CR>
|
||||
Plugin 'AutoComplPop'
|
||||
Plugin 'kien/ctrlp.vim'
|
||||
Plugin 'godlygeek/tabular'
|
||||
Plugin 'tpope/vim-surround'
|
||||
Plugin 'mhinz/vim-startify'
|
||||
Plugin 'Raimondi/delimitMate'
|
||||
Plugin 'msanders/snipmate.vim'
|
||||
Plugin 'Lokaltog/vim-easymotion'
|
||||
"[Vim colorschemes]"
|
||||
Plugin 'tomasr/molokai'
|
||||
Plugin 'djjcast/mirodark'
|
||||
call vundle#end()
|
||||
catch
|
||||
endtry
|
||||
else
|
||||
filetype on
|
||||
filetype on
|
||||
endif
|
||||
"[Recognize the type/syntax of the file]"
|
||||
filetype plugin on
|
||||
|
@ -93,7 +93,7 @@ runtime macros/matchit.vim
|
|||
syntax on
|
||||
"[Read the changes after the save .vimrc]"
|
||||
if has("autocmd")
|
||||
autocmd! BufWritePost $MYVIMRC source $MYVIMRC
|
||||
autocmd! BufWritePost $MYVIMRC source $MYVIMRC
|
||||
endif
|
||||
"[Define the leader key]"
|
||||
let mapleader=","
|
||||
|
@ -112,6 +112,10 @@ nnoremap <C-j> <C-W>j
|
|||
nnoremap <C-k> <C-W>k
|
||||
nnoremap <C-h> <C-W>h
|
||||
nnoremap <C-l> <C-W>l
|
||||
nnoremap <C-Up> <C-W>k
|
||||
nnoremap <C-Down> <C-W>j
|
||||
nnoremap <C-Left> <C-W>h
|
||||
nnoremap <C-Right> <C-W>l
|
||||
"[Locate the desired objects in the center of the screen]"
|
||||
nnoremap <silent> n nzz
|
||||
nnoremap <silent> N Nzz
|
||||
|
@ -148,7 +152,7 @@ set showfulltag
|
|||
"[Don't give the intro message when starting Vim]"
|
||||
set shortmess=""
|
||||
if has("unix") || has("mac")
|
||||
set shortmess+=I
|
||||
set shortmess+=I
|
||||
endif
|
||||
"[Always show StatusLine]"
|
||||
set laststatus=2
|
||||
|
@ -167,7 +171,7 @@ set splitright
|
|||
set equalalways
|
||||
"[Lisp coding settings]"
|
||||
if (&filetype == "lisp")
|
||||
set lisp
|
||||
set lisp
|
||||
endif
|
||||
"[Use the mouse in terminal]"
|
||||
set mouse=a
|
||||
|
@ -187,43 +191,43 @@ set cmdwinheight=10
|
|||
set virtualedit=all
|
||||
"[GUI/Color Scheme/Font settings]"
|
||||
if has("gui_running")
|
||||
winsize 90 50
|
||||
silent cd $HOME
|
||||
set linespace=0
|
||||
set guioptions=""
|
||||
set guitablabel=""
|
||||
if has("autocmd")
|
||||
autocmd InsertEnter * set cursorline
|
||||
autocmd InsertLeave * set nocursorline
|
||||
endif
|
||||
if has("win32") || has("win64")
|
||||
try
|
||||
colorscheme desert
|
||||
set guifont=PT_Mono:h11
|
||||
catch
|
||||
endtry
|
||||
elseif has("unix")
|
||||
try
|
||||
colorscheme mirodark
|
||||
set guifont=PT\ Mono\ 11
|
||||
catch
|
||||
endtry
|
||||
elseif has("mac")
|
||||
try
|
||||
set antialias
|
||||
colorscheme molokai
|
||||
set guifont=Monaco:h11
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
winsize 90 50
|
||||
silent cd $HOME
|
||||
set linespace=0
|
||||
set guioptions=""
|
||||
set guitablabel=""
|
||||
if has("autocmd")
|
||||
autocmd InsertEnter * set cursorline
|
||||
autocmd InsertLeave * set nocursorline
|
||||
endif
|
||||
if has("win32") || has("win64")
|
||||
try
|
||||
colorscheme desert
|
||||
set guifont=PT_Mono:h11
|
||||
catch
|
||||
endtry
|
||||
elseif has("unix")
|
||||
try
|
||||
colorscheme mirodark
|
||||
set guifont=PT\ Mono\ 11
|
||||
catch
|
||||
endtry
|
||||
elseif has("mac")
|
||||
try
|
||||
set antialias
|
||||
colorscheme molokai
|
||||
set guifont=Monaco:h11
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
else
|
||||
if has("unix") || has("mac")
|
||||
try
|
||||
set t_Co=256
|
||||
colorscheme desert
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
if has("unix") || has("mac")
|
||||
try
|
||||
set t_Co=256
|
||||
colorscheme desert
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
endif
|
||||
"[Backspace functions]"
|
||||
set backspace=indent,eol,start
|
||||
|
@ -231,7 +235,7 @@ set backspace=indent,eol,start
|
|||
set scrolloff=10
|
||||
set scrolljump=10
|
||||
set showmatch
|
||||
set matchpairs=""
|
||||
set matchpairs=":"
|
||||
set matchpairs+=(:)
|
||||
set matchpairs+={:}
|
||||
set matchpairs+=[:]
|
||||
|
@ -263,7 +267,7 @@ set textwidth=80
|
|||
set number
|
||||
set numberwidth=2
|
||||
"[Don't show current position]"
|
||||
set noruler
|
||||
set ruler
|
||||
"[For regular expressions turn magic on]"
|
||||
set magic
|
||||
"[Search settings]"
|
||||
|
@ -331,19 +335,19 @@ set sessionoptions+=unix,slash,blank,buffers,curdir
|
|||
set sessionoptions+=folds,help,options,tabpages,winsize
|
||||
"[Completion settings]"
|
||||
if has("autocmd")
|
||||
autocmd FileType c set omnifunc=ccomplete#Complete
|
||||
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
|
||||
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
|
||||
if has("ruby")
|
||||
autocmd FileType ruby set omnifunc=rubycomplete#Complete
|
||||
endif
|
||||
if has("perl")
|
||||
autocmd FileType perl set omnifunc=perlcomplete#CompletePERL
|
||||
endif
|
||||
if has("python")
|
||||
autocmd FileType python set omnifunc=pythoncomplete#Complete
|
||||
endif
|
||||
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
|
||||
autocmd FileType c set omnifunc=ccomplete#Complete
|
||||
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
|
||||
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
|
||||
if has("ruby")
|
||||
autocmd FileType ruby set omnifunc=rubycomplete#Complete
|
||||
endif
|
||||
if has("perl")
|
||||
autocmd FileType perl set omnifunc=perlcomplete#CompletePERL
|
||||
endif
|
||||
if has("python")
|
||||
autocmd FileType python set omnifunc=pythoncomplete#Complete
|
||||
endif
|
||||
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
|
||||
endif
|
||||
"[Completion search settings]"
|
||||
set complete=.,b,d,i,k,s,t,u,U,w
|
||||
|
@ -369,63 +373,63 @@ set wildignore=*.o,*.obj,*.pyc,*.pyo,*.swp,*.bak,*.exe,*.class
|
|||
set confirm
|
||||
"[Method used for encryption when the buffer is written to a file]"
|
||||
if (version <= 702)
|
||||
set cryptmethod=zip
|
||||
else
|
||||
set cryptmethod=blowfish
|
||||
set cryptmethod=zip
|
||||
else
|
||||
set cryptmethod=blowfish
|
||||
endif
|
||||
"[Make the scripts executable]"
|
||||
function! ChangeScriptMode()
|
||||
if getline(1) =~ "#!"
|
||||
if getline(1) =~ "bin/"
|
||||
silent !chmod +x <afile>
|
||||
endif
|
||||
endif
|
||||
if getline(1) =~ "#!"
|
||||
if getline(1) =~ "bin/"
|
||||
silent !chmod +x <afile>
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
if has("unix") || has("mac")
|
||||
if has("autocmd")
|
||||
autocmd BufWritePost * call ChangeScriptMode()
|
||||
endif
|
||||
if has("autocmd")
|
||||
autocmd BufWritePost * call ChangeScriptMode()
|
||||
endif
|
||||
endif
|
||||
"[Python/Perl scripts templates]"
|
||||
function! InitScriptFile(type)
|
||||
if (a:type == "python")
|
||||
execute setline(1, "#!/usr/bin/env python")
|
||||
execute setline(2, "# -*- coding: utf-8 -*-")
|
||||
elseif (a:type == "perl")
|
||||
execute setline(1, "#!/usr/bin/env perl")
|
||||
execute setline(2, "")
|
||||
execute setline(3, "use warnings;")
|
||||
execute setline(4, "use strict;")
|
||||
endif
|
||||
normal Go
|
||||
if (a:type == "python")
|
||||
execute setline(1, "#!/usr/bin/env python")
|
||||
execute setline(2, "# -*- coding: utf-8 -*-")
|
||||
elseif (a:type == "perl")
|
||||
execute setline(1, "#!/usr/bin/env perl")
|
||||
execute setline(2, "")
|
||||
execute setline(3, "use warnings;")
|
||||
execute setline(4, "use strict;")
|
||||
endif
|
||||
normal Go
|
||||
endfunction
|
||||
if has("autocmd")
|
||||
autocmd BufNewFile *.pl,*.pm call InitScriptFile("perl")
|
||||
autocmd BufNewFile *.py,*.pyw call InitScriptFile("python")
|
||||
autocmd BufNewFile *.pl,*.pm call InitScriptFile("perl")
|
||||
autocmd BufNewFile *.py,*.pyw call InitScriptFile("python")
|
||||
endif
|
||||
"[Remove tabs and spaces at the end of lines]"
|
||||
function! DeleteTrailingTWS()
|
||||
normal mb
|
||||
silent %s/[ \t]*$//g
|
||||
silent %s/\s\+$//ge
|
||||
normal 'b
|
||||
normal mb
|
||||
silent %s/[ \t]*$//g
|
||||
silent %s/\s\+$//ge
|
||||
normal 'b
|
||||
endfunction
|
||||
if has("autocmd")
|
||||
autocmd BufWritePre *.py,*.pyw retab
|
||||
autocmd BufWritePre * call DeleteTrailingTWS()
|
||||
autocmd BufWritePre *.py,*.pyw retab
|
||||
autocmd BufWritePre * call DeleteTrailingTWS()
|
||||
endif
|
||||
"[Show current mode in StatusLine]"
|
||||
function! ShowModeInStatusLine()
|
||||
let g:currentMode = mode()
|
||||
let g:showMode = ""
|
||||
if (g:currentMode ==# "i")
|
||||
let g:showMode = "Insert"
|
||||
elseif (g:currentMode ==# "R")
|
||||
let g:showMode = "Replace"
|
||||
elseif (g:currentMode ==# "n")
|
||||
let g:showMode = "Normal"
|
||||
else
|
||||
let g:showMode = "Visual"
|
||||
endif
|
||||
return g:showMode
|
||||
let g:currentMode = mode()
|
||||
let g:showMode = ""
|
||||
if (g:currentMode ==# "i")
|
||||
let g:showMode = "Insert"
|
||||
elseif (g:currentMode ==# "R")
|
||||
let g:showMode = "Replace"
|
||||
elseif (g:currentMode ==# "n")
|
||||
let g:showMode = "Normal"
|
||||
else
|
||||
let g:showMode = "Visual"
|
||||
endif
|
||||
return g:showMode
|
||||
endfunction"""""""""""""""""""
|
||||
|
|
Loading…
Reference in a new issue