How do I find and alter the Views field markup in Drupal 8? Below is a twig template: core/modules/views/templates/views-view-unformatted.html.twig:

{#
/**
 * @file
 * Default theme implementation to display a view of unformatted rows.
 *
 * Available variables:
 * - title: The title of this group of rows. May be empty.
 * - rows: A list of the view's row items.
 *   - attributes: The row's HTML attributes.
 *   - content: The row's content.
 *
 * @see template_preprocess_views_view_unformatted()
 *
 * @ingroup themeable
 */
#}
{% if title %}
  &lt;h3&gt;{{ title }}&lt;/h3&gt;
{% endif %}
{% for row in rows %}
  &lt;div{{ row.attributes }}&gt;
    {{ row.content }}
  &lt;/div&gt;
{% endfor %}


How do I alter the markup (and add some php logic) in row.content? - which outputs markup such as:

&lt;div class="views-field views-field-body"&gt;
  &lt;div class="field-content"&gt;
    &lt;p&gt;Hello world!&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;


Presumably, there is another twig template for this markup? I cannot find it. I have the twig debugger turned on, but there are no notes above the markup that renders each content field.

I've looked at the template preprocess functions in views.theme.inc too - can't see any markup being generated in those things.

Thanks
First, enable twig debugging in sites/default/services.yml.

Then that should print a wrapper around each template that tells you which template it is exactly using for that piece of marking. In this case, it is probably views-field.html.twig or so.

Twig also reports what kind of suggestions you can use (e.g. a node type specific template for node.html.twig), but that doesn't work for views because views uses a different approach for that, and twig debug doesn't understand that yet.