def find(self, *strings, **kwargs):
start = kwargs.pop("<STR_LIT:start>", <NUM_LIT:0>)<EOL>stop = kwargs.pop("<STR_LIT>", None)<EOL>keys_only = kwargs.pop("<STR_LIT>", False)<EOL>results = {string: [] for string in strings}<EOL>stop = len(self) if stop is None else stop<EOL>for i, line in enumerate(self[start:stop]):<EOL><INDENT>for string in strings:<EOL><INDENT>if string in line:<EOL><INDENT>if keys_only:<EOL><INDENT>results[string].append(i)<EOL><DEDENT>else:<EOL><INDENT>results[string].append((i, line))<EOL><DEDENT><DEDENT><DEDENT><DEDENT>if len(strings) == <NUM_LIT:1>:<EOL><INDENT>return results[strings[<NUM_LIT:0>]]<EOL><DEDENT>return results<EOL>
Search the entire editor for lines that match the string.

.. code-block:: Python

    string = '''word one
    word two
    three'''
    ed = Editor(string)
    ed.find('word')          # [(0, "word one"), (1, "word two")]
    ed.find('word', 'three') # {'word': [...], 'three': [(2, "three")]}

Args:
    strings (str): Any number of strings to search for
    keys_only (bool): Only return keys
    start (int): Optional line to start searching on
    stop (int): Optional line to stop searching on

Returns:
    results: If multiple strings searched a dictionary of string key, (line number, line) values (else just values)